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.