(PHP 5)
DOMNode::removeChild — Удаляет дочерний узел из списка потомков
Эта функция удаляет дочерний узел из списка потомков.
oldnode
Удаляемый дочерний узел.
Функция возращает удаляемый дочерний узел, если он может быть удален.
DOM_NO_MODIFICATION_ALLOWED_ERR
Возникает, если узел доступен только для чтения.
DOM_NOT_FOUND
Возникает, если oldnode
не является дочерним узлом данного узла.
Следующий пример удаляет элемент chapter (глава) из XML-документа.
Пример #1 Удаление дочернего узла
<?php
$doc = new DOMDocument;
$doc->load('book.xml');
$book = $doc->documentElement;
// находим главу (chapter) и удалям из книги (book)
$chapter = $book->getElementsByTagName('chapter')->item(0);
$oldchapter = $book->removeChild($chapter);
echo $doc->saveXML();
?>
Результат выполнения данного примера:
<?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> </book>
Пример #2 Сохраняем URI пространства имен родительского узла
<?php
$doc = new DOMDocument;
$doc->load('book.xml');
$book = $doc->documentElement;
// находим главу (chapter) и удалям из книги (book)
$chapter = $book->getElementsByTagName('chapter')->item(0);
// копируем URI пространства имен
$nsuri = $book->namespaceURI;
// удаляем дочерний узел
$book->removeChild($chapter);
// вставляем URI пространства имен обратно в родительский узел
$book->namespaceURI = $nsuri;
?>
Замечание:
После вызова этого метода свойство DOMNode::$namespaceURI родительского узла сбрасывается в
NULL
. В примере выше показано, как это обойти.