Foros del Web » Programando para Internet » PHP »

Modificar archivo XML

Estas en el tema de Modificar archivo XML en el foro de PHP en Foros del Web. Veran quiero armar un codigo PHP para crear adentro de un nodo padre un nodo hijo con sus respectivos nietos. El problema es que cuando ...
  #1 (permalink)  
Antiguo 08/12/2010, 21:54
Avatar de nico89  
Fecha de Ingreso: noviembre-2010
Mensajes: 13
Antigüedad: 14 años
Puntos: 0
Pregunta Modificar archivo XML

Veran quiero armar un codigo PHP para crear adentro de un nodo padre un nodo hijo con sus respectivos nietos. El problema es que cuando cargo el archivo XML no se como dirigirme al nodo padre, les muestro el codigo que tengo por ahora:

Código PHP:
$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput true;
$doc->load('archivo.xml'); 
//$bloques = $doc->getElementsByTagName("bloque");

//$root = $doc->createElement('book');
//$padre = $doc->getElementByTagName("muro");
$padre $doc->createElement("muro");
$padre $doc->appendChild($padre);

$hijo $doc->createElement("bloque");
$hijo $padre->appendChild($hijo);

$root $doc->createElement('book');
$root $hijo->appendChild($root);

$title $doc->createElement('title');
$title $root->appendChild($title);

$text $doc->createTextNode('This is the title');
$text $title->appendChild($text);

echo 
"Saving all the document:\n";
echo 
$doc->saveXML() . "\n";

echo 
"Saving only the title part:\n";
echo 
$doc->saveXML($title);

$doc->save("prueba.xml"); 
El contenido de archivo.xml es el siguiente:

Código HTML:
<?xml version="1.0" encoding="utf-8"?>
<muro>
	<bloque>
		<usuario>Gisela</usuario>
		<coment>Moy te quiero mucho (:</coment>
	</bloque>
	<bloque>
		<usuario>Erika</usuario>
		<coment>Moy te quiero mucho (:</coment>
	</bloque>
</muro> 
La idea es que con el codigo crear un nuevo <bloque> adentro del <muro>. Por ahora lo unico que consegui es crear un nuevo <muro> pero no es lo que quiero, ya que no me sirve a la hora de leerlo.

Salu2.
  #2 (permalink)  
Antiguo 08/12/2010, 22:23
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Modificar archivo XML

si revisas en la documentación http://www.php.net/manual/es/domdocu...sbytagname.php, te darás cuenta que getElementsByTagName (en plural), te devuelve un objeto DOMNodeList, el cual puedes usar para acceder al padre, que en teoría debe ser el elemento 0:
Código PHP:
Ver original
  1. <?php
  2. $doc = new DOMDocument('1.0');
  3. // we want a nice output
  4. $doc->formatOutput = true;
  5. $doc->load('archivo.xml');
  6. //$bloques = $doc->getElementsByTagName("bloque");
  7.  
  8. $padre = $doc->getElementsByTagName("muro");
  9. $padre = $padre->item(0); //el elemento 0
  10.  
  11. $hijo = $doc->createElement("bloque");
  12. $hijo = $padre->appendChild($hijo);
  13.  
  14. $root = $doc->createElement('book');
  15. $root = $hijo->appendChild($root);
  16.  
  17. $title = $doc->createElement('title');
  18. $title = $root->appendChild($title);
  19.  
  20. $text = $doc->createTextNode('This is the title');
  21. $text = $title->appendChild($text);
  22.  
  23. $doc->save("prueba.xml");
  24. ?>
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 08/12/2010, 22:31
Avatar de nico89  
Fecha de Ingreso: noviembre-2010
Mensajes: 13
Antigüedad: 14 años
Puntos: 0
Respuesta: Modificar archivo XML

Maycolalvarez muchas gracias. Ya funciona el código, ya haba intentado usar getElementsByTagName pero no le encontraba la vuelta, así que gracias por la ayuda.
  #4 (permalink)  
Antiguo 09/12/2010, 08:52
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Modificar archivo XML

Cita:
Iniciado por nico89 Ver Mensaje
Maycolalvarez muchas gracias. Ya funciona el código, ya haba intentado usar getElementsByTagName pero no le encontraba la vuelta, así que gracias por la ayuda.
recuerda que siempre es útil y practico consultar la documentación, que para eso está allí
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: editar, modificar, 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:16.