Foros del Web » Programando para Internet » PHP »

como pasar un array php a xml

Estas en el tema de como pasar un array php a xml en el foro de PHP en Foros del Web. Hola, si tengo un array de php que quiero pasar a un archivo xml como tendria que hacerlo por ejemplo algo asin: si tengo este ...
  #1 (permalink)  
Antiguo 20/09/2011, 20:50
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 10 meses
Puntos: 10
como pasar un array php a xml

Hola, si tengo un array de php que quiero pasar a un archivo xml como tendria que hacerlo por ejemplo algo asin:

si tengo este array:
Código PHP:
Ver original
  1. <?php
  2. header ("Content-Type:text/xml");
  3. $nombres[]=array();
  4. ?>
  5.  
  6. <datos>
  7. <nombre>aqui tiene que salir el primer nombre del array</nombre>
  8. <nombre>aqui segundo nombre</nombre>
  9. <nombre>aqui segundo nombre</nombre>
  10. </datos>
  #2 (permalink)  
Antiguo 21/09/2011, 00:17
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: como pasar un array php a xml

Eso se puede lograr fácilmente con la clase DOMDocument

Dejo un ejemplo comentado:

Código PHP:
Ver original
  1. <?php
  2. //Cabecera para mostrar el XML
  3. header ("content-type: text/xml");
  4. //Array en modo de ejemplo con los nombres
  5. $nombres = array('Nombre 1', 'Nombre 2', 'Nombre 3');
  6. /* Creamos la instancia de la clase DOMDocument que crea
  7. también la línea <?xml version="1.0" encoding="utf-8"?>
  8. con su versión y encoding*/
  9. $doc = new DOMDocument('1.0', 'utf-8');
  10. //Creamos el elemento data
  11. $data = $doc->createElement('data');
  12. //Agregamos el elemento data al XML
  13. $doc->appendChild($data);
  14.  
  15. //Recorremos el array con los nombres
  16. foreach ($nombres as $nombre) {
  17.     //creamos los elementos nombre con su valor (cada nombre)
  18.     $name = $doc->createElement('nombre', $nombre);
  19.     //Agregamos cada elemento nombre al padre data
  20.     $data->appendChild($name);
  21. }
  22.  
  23. //Imprimimos el contenido del XML
  24. //obtenido de todo lo que hicimos.
  25. echo $doc->saveXML();

Resultado:

Cita:
<data>
<nombre>Nombre 1</nombre>
<nombre>Nombre 2</nombre>
<nombre>Nombre 3</nombre>
</data>
Tal vez te interese este aporte: [APORTE] Leer XML con SimpleXML y DOM

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 21/09/2011, 01:52
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 10 meses
Puntos: 10
Respuesta: como pasar un array php a xml

andresdzphp, me dio este error:

Error de lectura XML: declaración de texto o XML en un lugar distinto del principio de la entidad
Ubicación: http://localhost/prueba/script.php
Número de línea 2, columna 8: <?xml version="1.0" encoding="utf-8"?>

Si me lo puedieras aclarar, saludos.

Última edición por azaz; 21/09/2011 a las 04:42
  #4 (permalink)  
Antiguo 21/09/2011, 06:11
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: como pasar un array php a xml

¿Y que tienes en la línea 1? Si tienes un espacio ese es el problema, elimina el espacio y te debe mostrar correctamente.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 21/09/2011, 07:14
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 10 meses
Puntos: 10
Respuesta: como pasar un array php a xml

abimaelrc, gracias por tu colaboracion era eso, saludos.
  #6 (permalink)  
Antiguo 21/09/2011, 09:17
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 10 meses
Puntos: 10
Respuesta: como pasar un array php a xml

Otra cosa, como lo podria hacer al la inversa osea en vez de cargar un archivo xml recuperar en un array php los datos del xml, alguna ayuda, saludos.
  #7 (permalink)  
Antiguo 21/09/2011, 09:57
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: como pasar un array php a xml

Cita:
Iniciado por azaz Ver Mensaje
Otra cosa, como lo podria hacer al la inversa osea en vez de cargar un archivo xml recuperar en un array php los datos del xml, alguna ayuda, saludos.
En ese caso lee este aporte:

http://www.forosdelweb.com/f18/aport...ml-dom-792348/

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #8 (permalink)  
Antiguo 22/09/2011, 03:37
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 10 meses
Puntos: 10
Respuesta: como pasar un array php a xml

Hola, bueno tengo otra duda respecto al la clase DOMDocument, es la siguiente linea:

Código PHP:
Ver original
  1. $doc->saveXML("archivo.xml");

La pongo asin dicha linea para crear un archivo xml en el mismo directorio donde tengo el script php pero me da error, alguna ayuda?

Saludos.
  #9 (permalink)  
Antiguo 22/09/2011, 09:59
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: como pasar un array php a xml

Cita:
Iniciado por azaz Ver Mensaje
Hola, bueno tengo otra duda respecto al la clase DOMDocument, es la siguiente linea:

Código PHP:
Ver original
  1. $doc->saveXML("archivo.xml");

La pongo asin dicha linea para crear un archivo xml en el mismo directorio donde tengo el script php pero me da error, alguna ayuda?

Saludos.
y cuál es el mensaje error?

lee esto

http://php.net/manual/en/domdocument.savexml.php
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:22.