(PHP 5)
DOMNode::removeChild — 子要素群から子要素を削除する
oldnode
削除する子要素。
子要素の削除に成功した場合に、削除した要素を返します。
DOM_NO_MODIFICATION_ALLOWED_ERR
ノードが読み込み専用の場合に発生します。
DOM_NOT_FOUND
oldnode
がこのノードの子要素でない場合に発生します。
以下の例は、XML ドキュメントから chapter 要素を削除します。
例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="iso-8859-1"?> <!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
にリセットされます。上の例は、この問題の回避策を示すものです。