Pasar XML a PHP
$xml = simplexml_load_string($data);
foreach ($xml->mensaje as $mensaje)
echo $mensaje->texto.' ';
function loadXML($data) {
$xml = @simplexml_load_string($data);
if (!is_object($xml))
throw new Exception('Error en la lectura del XML',1001);
return $xml;
}
Para ir directamente a un sub elemento:
foreach ($xml->xpath('//asunto') as $asunto)
echo $asunto."\n";
Para pasar de simleXML a XML :
echo $xml->asXML();
Con SimpleXML tener en cuenta:
Si hay un guion:
foreach ($xml->{'mensaje-personal'} as $mensaje)
echo $mensaje->texto.' ';
Hacer cast a string siempre que obtenemos datos de los objetos SimpleXML. Si en vez de devolver directamente el valor de un elemento devuelve otro objeto SimpleXML, se soluciona con:
$texto = (string) $data_o->mensaje[0]->texto;