El xml es el siguiente:
Cita:
El código PHP es:<?xml version="1.0" encoding="iso-8859-1"?>
<date>
<mapa >
<!--para que los caracteres no den error utilizamos <![CDATA[Contenido]]> -->
<titulo><![CDATA[Título1]]> </titulo>
<direccion id="1">
</direccion>
</mapa>
<mapa >
<!--para que los caracteres no den error utilizamos <![CDATA[Contenido]]> -->
<titulo></titulo>
<direccion id="2">
Hola
</direccion>
</mapa>
</date>
<date>
<mapa >
<!--para que los caracteres no den error utilizamos <![CDATA[Contenido]]> -->
<titulo><![CDATA[Título1]]> </titulo>
<direccion id="1">
</direccion>
</mapa>
<mapa >
<!--para que los caracteres no den error utilizamos <![CDATA[Contenido]]> -->
<titulo></titulo>
<direccion id="2">
Hola
</direccion>
</mapa>
</date>
Código PHP:
<?php
//$library = simplexml_load_file( 'xml/Referencias.xml' );
//$ruta_fichero="http://www.dominio.com/noticias.xml";
function CargarXML($ruta_fichero)
{
$contenido = "";
if($da = fopen($ruta_fichero,"r" ))
{
while ($aux= fgets($da,1024))
{
$contenido.=$aux;
}
fclose($da);
}
else
{
echo "Error: no se ha podido leer el archivo <strong>$ruta_fichero</strong>";
}
//Remplazar caracteres
$contenido=ereg_replace("á","á",$contenido);
$contenido=ereg_replace("é","é",$contenido);
$contenido=ereg_replace("í","í",$contenido);
$contenido=ereg_replace("ó","ó",$contenido);
$contenido=ereg_replace("ú","ú",$contenido);
$contenido=ereg_replace("Á","Á",$contenido);
$contenido=ereg_replace("É","É",$contenido);
$contenido=ereg_replace("Í","Í",$contenido);
$contenido=ereg_replace("Ó","Ó",$contenido);
$contenido=ereg_replace("Ú","Ú",$contenido);
$contenido=ereg_replace("Ñ","Ñ",$contenido);
$contenido=ereg_replace("ñ","ñ",$contenido);
$contenido=ereg_replace("º","",$contenido);
$tagnames = array ("direccion", "titulo" );
if (!$xml = domxml_open_mem($contenido))
{
echo "Ha ocurrido un error al procesar el documento<strong> \"$ruta_fichero\"</strong> a XML <br>";
exit;
}
else
{
$raiz = $xml->document_element();
$tam=sizeof($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;
}
}
$matriz=CargarXML("xml/Mapas.xml" );
$num_noticias=sizeof($matriz);
for($i=0;$i<$num_noticias;$i++)
{
echo '
<font face="Calibri" size="2" color="#000000"><b>'.$matriz[$i]["direccion"].'</b><br>
</font>'
;
}
?>