Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Agregar nodo padre a XML

Estas en el tema de Agregar nodo padre a XML en el foro de PHP en Foros del Web. Estimados, Buenos dias disculpen la molestia de lo posible me gustaría recibir su ayuda, estoy creando un xml de la siguiente manera: <alumno id="comprobante" version="1.0.0"><nombre>Luis</nombre></alumno>,. ...
  #1 (permalink)  
Antiguo 05/10/2015, 15:58
 
Fecha de Ingreso: diciembre-2007
Mensajes: 218
Antigüedad: 16 años, 11 meses
Puntos: 1
Agregar nodo padre a XML

Estimados,

Buenos dias disculpen la molestia de lo posible me gustaría recibir su ayuda, estoy creando un xml de la siguiente manera:

<alumno id="comprobante" version="1.0.0"><nombre>Luis</nombre></alumno>,.

Pero después de crearlo necesito agregar un nodo padre paraq ue quede asi:
<autorizacion><alumno id="comprobante" version="1.0.0"><nombre>Luis</nombre></alumno></autorizacion>.

El codigo que utilizo es este:

$dom = new DOMDocument();
$dom->load ('alumno.xml');
$autorizacion=$dom->createElement("autorizacion");
$autorizacion=$dom->appendChild($autorizacion);

//codigo para editar el nodo alumno y volverlo hijo de autorizacion

$dom->save('alumno.xml');

De antemano muchas gracias y disculpen la molestia.
  #2 (permalink)  
Antiguo 05/10/2015, 16:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Agregar nodo padre a XML

¿Ya consultaste el manual por si acaso?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/10/2015, 14:36
 
Fecha de Ingreso: diciembre-2007
Mensajes: 218
Antigüedad: 16 años, 11 meses
Puntos: 1
Respuesta: Agregar nodo padre a XML

Estimado pateketrueke,

Obvio que estoy verificando el manual pero aun no encuentro la solución sino ya la hubiera publicado para que sirva como ayuda a los demás.
  #4 (permalink)  
Antiguo 06/10/2015, 14:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Agregar nodo padre a XML

Bueno, yo sólo decía porque no creo que exista el método de agregar un nodo padre.

Y en todo caso tu lógica es correcta, aunque parece que el código no.

Si ya tienes el XML del alumno en $dom ¿por qué creas el nodo padre ahí?

¿No sería más simple generar primero el XML padre, y entonces ahí agregar el nodo hijo?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 06/10/2015, 14:56
 
Fecha de Ingreso: diciembre-2007
Mensajes: 218
Antigüedad: 16 años, 11 meses
Puntos: 1
Respuesta: Agregar nodo padre a XML

Estimado pateketrueke,

Lo que dices es totalmente correcto, pero lamentablemente el proceso es crear el xml enviarlo y después de recibirlo adicionar el nodo padre, estoy probando con nodeParent e insertBefore pero no consigo que funcione.

Según veo debo de editar el nodo alumno y volverlo hijo de autorizacion pero e ahí el dilema.
  #6 (permalink)  
Antiguo 06/10/2015, 15:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Agregar nodo padre a XML

Cita:
y después de recibirlo adicionar el nodo padre
¿Y? Yo no veo el problema con eso.

Es decir, sí, ya tienes el nodo hijo completo ¿entonces qué te impide crear el XML padre ahí y agregar el nodo hijo?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 07/10/2015, 11:25
 
Fecha de Ingreso: diciembre-2007
Mensajes: 218
Antigüedad: 16 años, 11 meses
Puntos: 1
Respuesta: Agregar nodo padre a XML

Bueno menos palabras y mas acción, detallo la solucion:

$xml1='alumnos.xml';

$xml=new DomDocument("1.0","UTF-8");

$xml->xmlStandalone = true;

$xml->loadXML ($xml1);

$node = $xml->getElementsByTagName("alumno")->item(0);

$dom=new DomDocument("1.0","UTF-8");

$dom->xmlStandalone = true;
$dom->loadXML ("<autorizacion></autorizacion>");

$node = $dom->importNode($node, true);

$dom->documentElement->appendChild($node);

$dom->save($xml1);

Mugras gracias a todos por su paciencia y ayuda.

Etiquetas: nodo, padre, 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 12:50.