Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/08/2012, 05:10
tonydelpinogz
 
Fecha de Ingreso: abril-2010
Mensajes: 37
Antigüedad: 14 años
Puntos: 1
Eliminar un nodo XML en PHP

Buenas, llevo dándole vueltas a esto y he consultado en la referencia oficial de PHP y no consigo eliminar un "nodo hijo" de XML desde PHP.

En el manual de PHP pone esto:
http://php.net/manual/es/domnode.removechild.php

El fichero de prueba es este: book.xml


<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<book id="listing">
<title>My lists</title>
<chapter>My chapter</chapter>
</book>

Quiero eliminar lo que he puesto en rojo. Según el manual el código es este:

Código PHP:
<?php

$doc 
= new DOMDocument;
$doc->load('book.xml');

$book $doc->documentElement;

// recuperamos el capítulo y lo eliminamos del libro
$chapter $book->getElementsByTagName('chapter')->item(0);
$oldchapter $book->removeChild($chapter);

echo 
$doc->saveXML();

?>
He probado hacer un "echo" a la variable $chapter para comprobar que me muestra el valor del primer $chapter y no lo muestra, mirando en google he visto que hay que poner
$chapter = $book->getElementsByTagName('chapter')->item(0)->nodeValue;

De esa forma si que puedo mirar el valor de $chapter, es decir, me muestra por pantalla lo que hay entre las etiquetas <chapter></chapter> del código XML, "My chapter"

Pero lo que no consigo es eliminar la etiqueta. Si algun entendido en el tema puede orientarme ...

PD. Uso PHP5 y el manual el enlace que he puesto está orientado para PHP5.