DOMNode::removeChild

(PHP 5)

DOMNode::removeChild — Удаляет дочерний узел из списка потомков


Описание

DOMNode DOMNode::removeChild ( DOMNode $oldnode )

Эта функция удаляет дочерний узел из списка потомков.


Список параметров

oldnode

Удаляемый дочерний узел.


Возвращаемые значения

Функция возращает удаляемый дочерний узел, если он может быть удален.


Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

DOM_NOT_FOUND

Возникает, если oldnode не является дочерним узлом данного узла.


Примеры

Следующий пример удаляет элемент chapter (глава) из XML-документа.

Пример #1 Удаление дочернего узла
$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 пространства имен родительского узла
$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. В примере выше показано, как это обойти.


Смотрите также


Описание класса domnode, примеры использования класса domnode.

Описание на ru2.php.net
Описание на php.ru