DOMDocument->registerNodeClass()

(no version information, might be only in CVS)

DOMDocument->registerNodeClass() -- 基底ノード型を作成する際に使用する拡張クラスを登録する

説明

class DOMDocument {

bool registerNodeClass ( string baseclass, string extendedclass )

}

このメソッドにより、独自に拡張した DOM クラスを登録することができます。 これを、後で PHP DOM 拡張モジュールで使用します。

このメソッドは、DOM の標準にはないものです。

パラメータ

baseclass

拡張したい DOM クラス。クラス名の一覧は、この章の導入部にあります。

もちろん、DOMDocument を拡張したクラスを登録することはできません。 しかし、拡張したクラスのインスタンスを作成することで、常にドキュメントを開始できます。

extendedclass

拡張したクラスの名前。NULL を渡した場合は、 それまでに baseclass を拡張して作成したすべてのクラスが削除されます。

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

例 1. 新しいメソッドを DOMElement に追加し、コードを書きやすくする

<?php

class myElement extends DOMElement {
   function
appendElement($name) {
      return
$this->appendChild(new myElement($name));
   }
}

class
myDocument extends DOMDocument {
   function
setRoot($name) {
      return
$this->appendChild(new myElement($name));
   }
}

$doc = new myDocument();
$doc->registerNodeClass('DOMElement', 'myElement');

// これ以降、他の要素への要素の追加が一回のメソッドコールでできるようになります!
$root = $doc->setRoot('root');
$child = $root->appendElement('child');
$child->setAttribute('foo', 'bar');

echo
$doc->saveXML();

?>

上の例の出力は以下となります。

<?xml version="1.0"?>
<root><child foo="bar"/></root>