Foros del Web » Programando para Internet » PHP »

Agregar nodos a un xml

Estas en el tema de Agregar nodos a un xml en el foro de PHP en Foros del Web. Holas; Tengo el siguiente archivo XML: Código PHP: <?xml version = "1.0"  encoding = "ISO-8859-1" ?> <cargo>   <creado>09-05-2010</creado> </cargo> Lo que quiero es agregar más nodos, ...
  #1 (permalink)  
Antiguo 10/05/2010, 10:01
 
Fecha de Ingreso: agosto-2009
Mensajes: 23
Antigüedad: 14 años, 8 meses
Puntos: 2
Agregar nodos a un xml

Holas;

Tengo el siguiente archivo XML:

Código PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>
<cargo>
  <creado>09-05-2010</creado>
</cargo>
Lo que quiero es agregar más nodos, como una especie de configuración de archvo de usuario, podría usar MySql, pero nop.

El siguiente es el código en php:

Código PHP:
// crear nodos
      
$doc = new DOMDocument("1.0","ISO-8859-1");
      
      
$doc->load("../../dat/xml/mayo.xml");
      
$cargo $doc->getElementsByTagName("cargo")->item[0];
      
$creado $doc->createElement("creado");
      
$creado->appendChild($doc->createTextNode("09-05-2010"));
      
$cargo=$doc->appendChild($creado);
      
$doc->formatOutput true;
      
$string $doc->saveXML();
      
// guardar archivo en ruta especificada
      // ver tipo de path segun carpeta del usuario
      
$doc->save("../../dat/xml/mayo.xml"); 
Cuando se ejecuta de su página PHP correspondiente, el XML con la información agregada se obtiene lo siguiente:

Código PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>
<cargo>
  <creado>09-05-2010</creado>
</cargo>
<creado>09-05-2010</creado>
No logro hacer que se agregue dentro del nodo "cargo"

En este parte del código:

Código PHP:
 line 66-----> $cargo=$doc->appendChild($creado); 
Por este otro:

Código PHP:
line 66-----> $cargo->appendChild($creado); 
se origina este error:

Código PHP:
Fatal errorCall to a member function appendChild() on a
 non
-object in .........wxml.php on line 66 
Estoy en esto por poco tiempo, no se que pase de alto, por si me ayudan, agradecido

Última edición por nostromos; 10/05/2010 a las 10:08
  #2 (permalink)  
Antiguo 10/05/2010, 11:10
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Agregar nodos a un xml

Verifica de esta forma
Código PHP:
Ver original
  1. <?php
  2. $doc = new DOMDocument("1.0", "ISO-8859-1");
  3.  
  4. $doc->formatOutput = true;
  5. //$doc->load("../../dat/xml/mayo.xml");
  6. //$cargo = $doc->getElementsByTagName("cargo")->item(0);
  7. $cargo = $doc->createElement("cargo");
  8. $doc->appendChild($cargo);
  9.  
  10. $creado = $doc->createElement("creado","09-05-2010");
  11.  
  12. $cargo->appendChild($creado);
  13.  
  14. $doc->save("xml.xml");
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 10/05/2010 a las 11:17
  #3 (permalink)  
Antiguo 10/05/2010, 11:29
 
Fecha de Ingreso: agosto-2009
Mensajes: 23
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Agregar nodos a un xml

Holas;

Gracias por responder, el código que Uds está mostrando es el que empleo para crear el xml que sirve de base, hasta aquí llego en conocimientos claros al respecto.

El problema, es que no logro agregar información adicional al xml que ya esta creado con dicho código.

Su código lo tenfo en una
Código PHP:
function crear(); 
Tal cual como lo escribio.
  #4 (permalink)  
Antiguo 10/05/2010, 12:08
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Agregar nodos a un xml

Para añadir datos dentro del elemento cargo, debe ser algo así
Código PHP:
Ver original
  1. <?php
  2. $doc = new DOMDocument("1.0", "ISO-8859-1");
  3.  
  4. $doc->formatOutput = true;
  5.  
  6. $doc->load("xml.xml");
  7.  
  8. $cargo = $doc->getElementsByTagName("cargo")->item(0);
  9.  
  10. $creado = $doc->createElement("creado","09-05-2010");
  11. $cargo->appendChild($creado);
  12.  
  13. $doc->save("xml.xml");
__________________
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 10/05/2010, 14:29
 
Fecha de Ingreso: agosto-2009
Mensajes: 23
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Agregar nodos a un xml

Holas;

ante todo te agradesco tu ayuda en este problema.

Ahora me di cuanta que en el getElementByTagsName -> item, lo tenia con estas llaves [] y no que eran estas ( ).

Agrego daos sin problemas, claro que no conserva el formato, esto tengo ahora:

Código PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>
<cargo>
  <creado>09-05-2010</creado>
<creado>09-05-2010</creado><creado>09-05-2010</creado></cargo>
Comparado que antes no enia nada y puro errores, es un paso enorme, ya vere porque no esta le formato.

Graciassssssssssssss

Etiquetas: nodos, 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 17:37.