DOMNode
PHP Manual

DOMNode::removeChild

(PHP 5)

DOMNode::removeChild 子要素群から子要素を削除する

説明

public DOMNode DOMNode::removeChild ( DOMNode $oldnode )

この関数は、子要素群から子要素を削除します。

パラメータ

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 にリセットされます。上の例は、この問題の回避策を示すものです。

参考


DOMNode
PHP Manual