Comunidad de diseño web y desarrollo en internet online

Ayuda novato. Formar XML desde Array.

Citar            
MensajeEscrito el 25 Mar 2011 11:31 am
Hola a todos.

Necesito generar un XML que pueda ser leido por un SWF y la única forma que tengo de conseguir los datos es usando php. El array de php que tengo sería algo así:

Código PHP :


Array
(
    [0] => Array
        (
            [id1] => valor
            [id2] => valor
            [id3] => valor
            [id4] => valor
            [id5] => valor
            [id6] => valor
            [id7] => valor
            [id8] => valor
            [id9] => valor
        )
 
    [1] => Array
        (
            [id1] => valor
            [id2] => valor
            [id3] => valor
            [id4] => valor
            [id5] => valor
            [id6] => valor
            [id7] => valor
            [id8] => valor
            [id9] => valor
        )

    [2] => Array
        (
            [id1] => valor
            [id2] => valor
            [id3] => valor
            [id4] => valor
            [id5] => valor
            [id6] => valor
            [id7] => valor
            [id8] => valor
            [id9] => valor
        )

)



Más alla de añadir el header al documento, podría alguien orientarme al respecto de como iterar sobre los distintos niveles del array y formar un XML?. He estado googleando por internet pero me encuentro sobretodo con casos en los que se usan bases de datos y no arrays y la verdad que siendo tan novato como soy con php no me aclaro mucho.

Cualquier ayuda sería bien recibida!. Muchas gracias de antemano

Salu2!.

Por teskostudio

34 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Mar 2011 01:14 pm
para iterar un array u objeto en php esta el foreach
en tu ejemplo solo se aria con 2 foreachs

Código PHP :

//con eso obtienes
//foreach($tu_array as $array) //llave no se usaria
foreach($tu_array as $llave => $array)
{
        foreach($array as $id => $valor)
        {
                echo $id;
        }
}

pero cual seria la forma de tu xml recuerda visitar el sitio de
http://es.php.net
si tienes dudas sobre una funcion la escribes directo en la url ejemplo para los xml tienes que ir a
http://es.php.net/simpleXMLElement
y para el autocompletado del scripts php puedes Zend Studio o el netbeans con plugin php

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 Mar 2011 02:07 pm
Ese XML es nada mas y nada menos que un string. En el foreach podrias hacer algo como:

Código PHP :

<?

header ("Content-Type:text/xml"); 
foreach($tu_array as $llave => $array) 
{ 
      $xml .= "<item id=\"$llave\">";
        foreach($array as $id => $valor) 
           $xml.= "<subitem id=\"$id\">$valor</subitem>";
        $xml .= "</item>";
} 
echo $xml;
?>


Saludos

Por edge

57 de clabLevel



Genero:Masculino  

Software developer

chrome
Citar            
MensajeEscrito el 25 Mar 2011 05:48 pm
Gracias por las respuestas. Al final me tiré al río y conseguí hacer lo que quería con esto:

Código PHP :


$xmlBody = '<?xml version="1.0" encoding="ISO-8859-1"?>';
$xmlBody .= '
<root>';
$total = count($array);
for($i = 0; $i < $total; $i++)
{
   $xmlBody .= '
   <nodo>
      <subnodo>' . $ret[$i]['id1'] . '</subnodo>
      <subnodo>' . $ret[$i]['id2'] . '</subnodo>
      <subnodo>' . $ret[$i]['id3'] . '</subnodo>
   </nodo>';
}
$xmlBody .= '
</root>';
echo $xmlBody;



Ahora viendo vuestros ejemplos me doy cuen que lo mio es una chapuza, pero oye, al menos funciona por el momento. De todas formas gracias, me miraré lo que me habéis dejado a ver si consigo hacer el código un poco más elegante.

Gracias!

Por teskostudio

34 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.