Programación Web y Scripting > PHP
Eliminar Nodos De Un Archivo Xml En Php
(1/1)
holydrake:
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 --- <animales><Vaca id_caravana="899"><id_caravana>899</id_caravana><id_tipo_animal>toro</id_tipo_animal><fecha_ingreso>07\02\6 </fecha_ingreso><fecha_egreso>0000-00-00</fecha_egreso><id_motivo_ingreso>2</id_motivo_ingreso><id_motivo_egreso>0</id_motivo_egreso><activo>1</activo></Vaca><Vaca id_caravana="896"><id_caravana>896</id_caravana><id_tipo_animal>toro</id_tipo_animal><fecha_ingreso>07\02\6 </fecha_ingreso><fecha_egreso>0000-00-00</fecha_egreso><id_motivo_ingreso>2</id_motivo_ingreso><id_motivo_egreso>0</id_motivo_egreso><activo>1</activo></Vaca><Vaca id_caravana="892"><id_caravana>892</id_caravana><id_tipo_animal>toro</id_tipo_animal><fecha_ingreso>07\02\6 </fecha_ingreso><fecha_egreso>0000-00-00</fecha_egreso><id_motivo_ingreso>2</id_motivo_ingreso><id_motivo_egreso>0</id_motivo_egreso><activo>1</activo></Vaca></animales> Y quiero borrar el nodo Vaca id_caravana="896" con todos sus hijos
Como debo hacer?
Por cierto he intentado esto
--- Código: Text --- <?php$incre=0; $tel_node = null; $doc = xmldocfile ('contact.xml'); $raiz = $doc->document_element(); $elements = $doc->get_elements_by_tagname('animales'); while ($incre <= "100") { $elementsa = $elements[$incre]; $elementsb = $elementsa->get_elements_by_tagname('Vaca'); $elementsb[0]->get_attribute('id_caravana'); if($elementsb == "67"){ $element = $elements[$incre]; $children = $element->child_nodes(); $child = $element->remove_child($children[0]); }else{ $incre++; } } $doc->dump_file("contact.xml", false, true); ?>
Pero sigo atorado por favor denme una mano
Altareum:
Chequeaste que esté entrando al if ???
Por lo que veo en estas dos líneas:
--- Código: Text ---$elementsb[0]->get_attribute('id_caravana');if($elementsb == "67"){
$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.
Navegación
Ir a la versión completa