DOMDocument->registerNodeClass()
(PHP 5 >= 5.2.0)
DOMDocument->registerNodeClass() — Register extended class used to create base node type
说明
DOMDocument
bool registerNodeClass
( string $baseclass
, string $extendedclass
)
This method allows you to register your own extended DOM class to be used afterward by the PHP DOM extension.
This method is not part of the DOM standard.
参数
- baseclass
-
The DOM class that you want to extend. You can find a list of these classes in the chapter introduction.
Of course, you won't be able to register a class extending DOMDocument but you can always start your document by instanciating your own extending class.
- extendedclass
-
Your extended class name. If NULL is provided, any previously registered class extending baseclass will be removed.
返回值
如果成功则返回 TRUE,失败则返回 FALSE。
更新日志
版本 | 说明 |
---|---|
PHP 5.2.2 | Prior to 5.2.2, a previously registered extendedclass had to be unregistered before being able to register a new class extending the same baseclass . |
范例
Example#1 Adding a new method to DOMElement to ease our code
<?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');
// From now on, adding an element to another costs only one method call !
$root = $doc->setRoot('root');
$child = $root->appendElement('child');
$child->setAttribute('foo', 'bar');
echo $doc->saveXML();
?>
上例将输出:
<?xml version="1.0"?> <root><child foo="bar"/></root>