Soy novato total en XMl y estoy intentando leer el contenido de un XML que obtengo de una pag externa, pero el problema es que la etiqueta <name> se encuentra en diferentes niveles, de esta manera
Código PHP:
<?php
$contenido='
<?xml version="1.0" ?>
<hotel_list>
<hotel>
<name>Hotel Pepito</name>
<subtitle>Barcelona</subtitle>
<characteristics>
<geographics>
<geographic>
<name>City</name>
</geographic>
</geographics>
</characteristics>
</hotel>
<hotel>
<name>Don Carlistos</name>
<subtitle>Barcelona</subtitle>
<characteristics>
<geographics>
<geographic>
<name>City</name>
</geographic>
</geographics>
</characteristics>
</hotel>';
//Para leer el XML
function CargarXML($contenido)
{
$contenido=str_replace('<?xml version="1.0"?>','<?xml version="1.0" encoding="ISO-8859-1"?>',$contenido);
$contenido=utf8_decode($contenido);
$tagnames = array ("name");
if (!$xml = domxml_open_mem($contenido))
{
echo "Error al procesar el XML <br>";
exit;
}
else
{
$raiz = $xml->document_element();
$tam=count($tagnames);
for($i=0; $i<$tam; $i++)
{
$nodo = $raiz->get_elements_by_tagname($tagnames[$i]);
$j=0;
foreach ($nodo as $etiqueta)
{
$matriz[$j][$tagnames[$i]]=$etiqueta->get_content();
$j++;
}
}
return $matriz;
}
}
Muchas gracias