¿Existe alguna forma fácil de ordenar una matriz asociativa PHP desde y hacia XML? Por ejemplo, tengo la siguiente matriz:Pasar matrices asociativas de PHP hacia y desde XML
$items = array("1", "2",
array(
"item3.1" => "3.1",
"item3.2" => "3.2"
"isawesome" => true
)
);
¿cómo iba a convertirlo en algo similar a la siguiente XML en tan pocas líneas como sea posible, luego de vuelta otra vez?
<items>
<item>1</item>
<item>2</item>
<item>
<item3_1>3.1</item3_1>
<item3_2>3.2</item3_2>
<isawesome>true</isawesome>
</item>
</items>
Realmente no me importa si tengo que cambiar la estructura de matriz un poco o si el código XML que sale es diferente al ejemplo anterior. He estado tratando de trabajar con PHP de XMLReader y XMLWriter, pero la documentación es tan pobre y el código que he producido como consecuencia parece en nada a lo que siento que debe ser similar:
$xml = SomeXMLWriter::writeArrayToXml($items);
$array = SomeXMLWriter::writeXmlToArray($xml);
es lo que realmente tiene que ser más difícil que eso para obtener un volcado XML básico sin formato de una matriz PHP sin escribir mi propia clase personalizada?
Intento evitar PEAR. Además de los dolores de cabeza que he tenido con la configuración, nunca me he quedado con ninguno de los paquetes que he usado.
si tiene matrices no asociativas (o más bien, claves de matriz con números en ellas) en sus datos, agregando un 'if (is_numeric ($ key)) $ key = "item";' al comienzo del bloque foreach (antes de is_array) funciona el truco. – Kemal
Para ser funcional con arreglos numéricos también, agregue '$ fKey = is_numeric ($ key)? 'numericValue': $ key; '** before **' if (is_array ($ value)) 'statement, y use' $ fKey' en el resto de la instrucción foreach. – Vassilis
Oh @VassilisGr, hice algo así allí: 'if (is_numeric ($ key)) {$ key = 'node'; } 'y movió' function write' afuera, no puede declarar dos veces la misma función, pero @Conrad ahora lo hará. (Mierda, ahora vi @disq comment jaja) – Wiliam