(PHP 5 >= 5.2.0)
DOMDocument::registerNodeClass — 基底ノード型を作成する際に使用する拡張クラスを登録する
このメソッドにより、独自に拡張した DOM クラスを登録することができます。 これを、後で PHP DOM 拡張モジュールで使用します。
このメソッドは、DOM の標準にはないものです。
拡張したい DOM クラス。クラス名の一覧は、この章の導入部にあります。
もちろん、DOMDocument を拡張したクラスを登録することはできません。 しかし、拡張したクラスのインスタンスを作成することで、常にドキュメントを開始できます。
拡張したクラスの名前。NULL を渡した場合は、 それまでに baseclass を拡張して作成したすべてのクラスが削除されます。
成功した場合に TRUE を、失敗した場合に FALSE を返します。
バージョン | 説明 |
---|---|
PHP 5.2.2 | 5.2.2 より前のバージョンでは、同一の baseclass を継承した新しいクラスを登録する際には、以前に登録されていた extendedclass の登録を解除する必要がありました。 |
例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>