Estoy realizando unos ejercicion con el situiente codigo
================== PHP ================================
<?php
$ruta_fichero="noticias.xml";
$contenido="";
if ($da=fopen($ruta_fichero,"r"))
{
while ($aux=fgets($da,1024))
{
$contenido.=$aux;
}
fclose($da);
}
else
{
echo "No se ha podido leer el fichero <strong>$ruta_fichero</strong>";
}
$contenido=ereg_replace("á","a",$contenido);
$contenido=ereg_replace("é","e",$contenido);
$contenido=ereg_replace("í","i",$contenido);
$contenido=ereg_replace("ó","o",$contenido);
$contenido=ereg_replace("ú","u",$contenido);
$contenido=ereg_replace("Á","A",$contenido);
$contenido=ereg_replace("É","E",$contenido);
$contenido=ereg_replace("Í","I",$contenido);
$contenido=ereg_replace("Ó","O",$contenido);
$contenido=ereg_replace("Ú","U",$contenido);
$contenido=ereg_replace("Ñ","NI",$contenido);
$contenido=ereg_replace("ñ","ni",$contenido);
$tagnames = array ("titulo","autor","cuerpo");
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++;
}
}
?>
============== FICHERO XML ============================
<?xml version="1.0" encoding="ISO-8859-1"?>
<bloque>
<noticia>
<titulo>Hola Caracola </titulo>
<autor>KaoS</autor>
<cuerpo>Olla Kaitos a Luisete</cuerpo>
</noticia>
<noticia>
<titulo>Nuevo articulo en desarrolloweb </titulo>
<autor>Raul</autor>
<cuerpo>Jeje hola, aqui estamos veremos a ver si sale la ñ</cuerpo>
</noticia>
</bloque>
Al rodarlo me da el siguiente erro:
Warning: domxml_open_mem() [function.domxml-open-mem]: Entity: line 2: parser error : XML declaration allowed only at the start of the document in C:\wamp\www\libreria\prueba1(3).php on line 38
Warning: domxml_open_mem() [function.domxml-open-mem]: <xml> in C:\wamp\www\libreria\prueba1(3).php on line 38
Warning: domxml_open_mem() [function.domxml-open-mem]: ^ in C:\wamp\www\libreria\prueba1(3).php on line 38
Ha ocurrido un error al procesar el documento "noticias.xml" a XML
la informacion que me ofrece phpinfo() en cuanto a xml y dom es
dom
DOM/XML enabled
DOM/XML API Version 20031129
libxml Version 2.6.26
HTML Support enabled
XPath Support enabled
XPointer Support enabled
Schema Support enabled
RelaxNG Support enabled
domxml
DOM/XML enabled
DOM/XML API Version 20030407
libxml Version 20626
HTML Support enabled
XPath Support enabled
XPointer Support enabled
iconv
iconv support enabled
iconv implementation "libiconv"
iconv library version 1.9
libxml
libXML support active
libXML Version 2.6.26
libXML streams enabled
xml
XML Support active
XML Namespace Support active
libxml2 Version 2.6.26
xmlreader
XMLReader enabled
xmlwriter
XMLWriter enabled
El servidor que utilizo es el paquete WAMP5
Con PHPTRIAD tampoco funciona
¿donde puede esta el fallo?