• Domingo 22 de Diciembre de 2024, 02:55

Autor Tema:  Eliminar Nodos De Un Archivo Xml En Php  (Leído 2277 veces)

holydrake

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Eliminar Nodos De Un Archivo Xml En Php
« en: Domingo 11 de Febrero de 2007, 13:50 »
0
Hola, estoy atorado y no puedo resolver este problema.
Quisiera saber como eliminar un nodo de una estructura xml

por ejemplo

Tengo la siguiente estructura:
Código: Text
  1.  
  2. <animales>
  3. <Vaca id_caravana="899">
  4. <id_caravana>899</id_caravana>
  5. <id_tipo_animal>toro</id_tipo_animal>
  6. <fecha_ingreso>07\02\6 </fecha_ingreso>
  7. <fecha_egreso>0000-00-00</fecha_egreso>
  8. <id_motivo_ingreso>2</id_motivo_ingreso>
  9. <id_motivo_egreso>0</id_motivo_egreso>
  10. <activo>1</activo>
  11. </Vaca>
  12. <Vaca id_caravana="896">
  13. <id_caravana>896</id_caravana>
  14. <id_tipo_animal>toro</id_tipo_animal>
  15. <fecha_ingreso>07\02\6 </fecha_ingreso>
  16. <fecha_egreso>0000-00-00</fecha_egreso>
  17. <id_motivo_ingreso>2</id_motivo_ingreso>
  18. <id_motivo_egreso>0</id_motivo_egreso>
  19. <activo>1</activo>
  20. </Vaca>
  21. <Vaca id_caravana="892">
  22. <id_caravana>892</id_caravana>
  23. <id_tipo_animal>toro</id_tipo_animal>
  24. <fecha_ingreso>07\02\6 </fecha_ingreso>
  25. <fecha_egreso>0000-00-00</fecha_egreso>
  26. <id_motivo_ingreso>2</id_motivo_ingreso>
  27. <id_motivo_egreso>0</id_motivo_egreso>
  28. <activo>1</activo>
  29. </Vaca>
  30. </animales>
  31.  
  32.  
Y quiero borrar el nodo Vaca id_caravana="896" con todos sus hijos
Como debo hacer?

Por cierto he intentado esto
Código: Text
  1.  
  2. <?php
  3. $incre=0;
  4.      $tel_node = null;
  5.      $doc = xmldocfile ('contact.xml');
  6.  
  7.     $raiz = $doc->document_element();
  8.  
  9.  
  10.      $elements = $doc->get_elements_by_tagname('animales');
  11.      while ($incre <= "100") {
  12.      $elementsa = $elements[$incre];
  13.      $elementsb = $elementsa->get_elements_by_tagname('Vaca');
  14.  
  15.      $elementsb[0]->get_attribute('id_caravana');
  16.  
  17.      if($elementsb == "67"){
  18.  
  19.      $element = $elements[$incre];
  20.      $children = $element->child_nodes();
  21.      $child = $element->remove_child($children[0]);
  22.  
  23.      }else{
  24.      $incre++;    
  25. }
  26.  
  27. }
  28.  
  29.  
  30.  
  31.      $doc->dump_file("contact.xml", false, true);
  32.  
  33. ?>
  34.  
  35.  
  36.  
  37.  

Pero sigo atorado por favor denme una mano

Altareum

  • Miembro MUY activo
  • ***
  • Mensajes: 327
    • Ver Perfil
    • http://www.avian.com.ar
Re: Eliminar Nodos De Un Archivo Xml En Php
« Respuesta #1 en: Miércoles 14 de Febrero de 2007, 14:49 »
0
Chequeaste que esté entrando al if ???
Por lo que veo en estas dos líneas:
Código: Text
  1. $elementsb[0]->get_attribute('id_caravana');
  2. if($elementsb == "67"){
  3.  

$elementsb es un Array, y luego lo estás comparando con "67" que en este caso es un string. Esto siempre será falso.

Saludos.
Altareum.
El postre!, el postre!, el postre!, el postre!, el postre!, el postre!.....
 | Klinka | Kiree | Avian |