Tienes razón, he probado esto:
test.php
Código PHP:
<?php
$a = "uno.xml";
$b = "dos.xml";
if (file_exists($a)) {
$xml_a = simplexml_load_file($a);
print "<p>DUMP $a START:</p><pre>";
var_dump($xml_a);
print "</pre><p>DUMP $a END</p><p>".str_repeat("-",60)."</p>";
} else { print "<b>$a no existe.</b><p>".str_repeat("-",60)."</p>"; }
if (file_exists($b)) {
$xml_b = simplexml_load_file($b);
print "<p>DUMP $b START:</p><pre>";
var_dump($xml_b);
print "</pre><p>DUMP $b END</p><p>".str_repeat("-",60)."</p>";
} else { print "<b>$b no existe.</b><p>".str_repeat("-",60)."</p>"; }
?>
uno.xml
Código:
<?xml version="1.0" encoding="utf-8"?>
<menulist>
<menuitem>
<img>imagen1.jpg</img>
<url>link1.html</url>
<id>1</id>
<title>Titulo1</title>
<text>Descripcion de texto1</text>
</menuitem>
<menuitem>
<img>imagen2.jpg</img>
<url>link2.html</url>
<id>2</id>
<title>Titulo2</title>
<text>Descripcion de texto2</text>
</menuitem>
<menuitem>
<img>imagen3.jpg</img>
<url>link3.html</url>
<id>3</id>
<title>Titulo3</title>
<text>Descripcion de texto3</text>
</menuitem>
</menulist>
dos.xml
Código:
<?xml version="1.0" encoding="utf-8"?>
<menulist>
<menuitem
img="imagen1.jpg"
url="link1.html"
id="1"
title="Titulo1"
text="Descripcion de texto1" />
<menuitem
img="imagen2.jpg"
url="link2.html"
id="2"
title="Titulo2"
text="Descripcion de texto2" />
<menuitem
img="imagen3.jpg"
url="link3.html"
id="3"
title="Titulo3"
text="Descripcion de texto3" />
</menulist>
output:
Código:
DUMP uno.xml START:
object(SimpleXMLElement)#1 (1) {
["menuitem"]=>
array(3) {
[0]=>
object(SimpleXMLElement)#2 (5) {
["img"]=>
string(11) "imagen1.jpg"
["url"]=>
string(10) "link1.html"
["id"]=>
string(1) "1"
["title"]=>
string(7) "Titulo1"
["text"]=>
string(21) "Descripcion de texto1"
}
[1]=>
object(SimpleXMLElement)#3 (5) {
["img"]=>
string(11) "imagen2.jpg"
["url"]=>
string(10) "link2.html"
["id"]=>
string(1) "2"
["title"]=>
string(7) "Titulo2"
["text"]=>
string(21) "Descripcion de texto2"
}
[2]=>
object(SimpleXMLElement)#4 (5) {
["img"]=>
string(11) "imagen3.jpg"
["url"]=>
string(10) "link3.html"
["id"]=>
string(1) "3"
["title"]=>
string(7) "Titulo3"
["text"]=>
string(21) "Descripcion de texto3"
}
}
}
DUMP uno.xml END
------------------------------------------------------------
DUMP dos.xml START:
object(SimpleXMLElement)#5 (1) {
["menuitem"]=>
array(3) {
[0]=>
object(SimpleXMLElement)#6 (1) {
["@attributes"]=>
array(5) {
["img"]=>
string(11) "imagen1.jpg"
["url"]=>
string(10) "link1.html"
["id"]=>
string(1) "1"
["title"]=>
string(7) "Titulo1"
["text"]=>
string(21) "Descripcion de texto1"
}
}
[1]=>
object(SimpleXMLElement)#7 (1) {
["@attributes"]=>
array(5) {
["img"]=>
string(11) "imagen2.jpg"
["url"]=>
string(10) "link2.html"
["id"]=>
string(1) "2"
["title"]=>
string(7) "Titulo2"
["text"]=>
string(21) "Descripcion de texto2"
}
}
[2]=>
object(SimpleXMLElement)#8 (1) {
["@attributes"]=>
array(5) {
["img"]=>
string(11) "imagen3.jpg"
["url"]=>
string(10) "link3.html"
["id"]=>
string(1) "3"
["title"]=>
string(7) "Titulo3"
["text"]=>
string(21) "Descripcion de texto3"
}
}
}
}
DUMP dos.xml END
------------------------------------------------------------
Tiene que ser algún carácter no válido que tengo que tener en la cadena text, por que con estos funciona perfectamente, el que me sigue dando problemas es menu.xml original, voy a usar CDATA y así soluciono el problema.
Por la mañana se ven las cosas mas claras, gracias amigo, sin tu confirmación de que funciona no hubiese probado nada.
Saludos.