Ver Mensaje Individual
  #7 (permalink)  
Antiguo 08/04/2011, 18:19
Skell
 
Fecha de Ingreso: abril-2011
Mensajes: 18
Antigüedad: 13 años
Puntos: 0
Respuesta: indentar XML con PHP

Muchas gracias a todos por su aporte. Estuve probando y al final comprendí el DOM, pero tengo una duda gigantesca que hace horas me rompe el bocho y no puedo figurarme como hacerlo. Esta vez no es de formato, sino de edicion de contenido (lo de formato anduvo barbaro).

Es lo siguiente:

Supongamos un XML de un playlist.
Código XML:
Ver original
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2.  
  3. <playlist>
  4.    
  5.     <cancion>
  6.    
  7.         <titulo>Can't you see me</titulo>
  8.         <banda>The Jimi Hendrix Experience</banda>
  9.    
  10.     </cancion> 
  11.    
  12.     <cancion>
  13.    
  14.         <titulo>Just like a woman</titulo>
  15.         <banda>Bob Dylan</banda>
  16.    
  17.     </cancion>
  18.  
  19. </playlist>

Lo que yo quiero hacer es agregar los siguietes nodos:

1- Un nuevo nodo cancion
2- Dentro de él, un nodo titulo
3- Dentro del mismo cancion un nodo banda

Osea, agregar un nuevo 'elemento' a la 'playlist'.

Para ello utilizo el siguiente algoritmo:

Código PHP:
Ver original
  1. $nodo = $dom->createElement('cancion');
  2. $new = $dom->appendChild($nodo);

Pero si hago eso repetido tres veces, me modifica el xml, pero me pone los tres como 'padres'. La cuestion es la siguiente: ¿Cómo hago para ingresar el nodo 'cancion' dentro del nodo root ('playlist') y hacer lo mismo pero con el 'titulo' y la 'banda', dentro del nodo 'cancion'?

Es decir, quiero saber si existe alguna manera de especificar que los nodos se creen dentro de otro y no como nuevos padres.

¿Se entiende lo que pido? Espero que sí, si no pregunten y detallo más (si es que se puede, jaja).

Desde ya muchas gracias.

Última edición por Skell; 08/04/2011 a las 18:25