DOMDocument::registerNodeClass()函数是PHP中的内置函数,用于注册用于创建基本节点类型的扩展类。
用法:
bool DOMDocument::registerNodeClass( string $baseclass,
string $extendedclass )
参数:该函数接受上述和以下所述的两个参数:
$baseclass:它指定要扩展的DOM类。
$extendedclass:它指定扩展的类名。
返回值:如果成功,则此函数返回TRUE;如果失败,则返回FALSE。
下面给出的程序说明了PHP中的DOMDocument::registerNodeClass()函数:
程序1:在此程序中,我们将使用类创建具有CSS属性的HTML div元素。
// Create a class myElement
class myElement extends DOMElement
{
// Create a custom function to
// append the element
public function appendElement($name)
{
return $this->appendChild(new myElement($name));
}
}
// Create a class myDocoment
class myDocument extends DOMDocument {
// Create a custom function to set the root
public function setRoot($name) {
return $this->appendChild(new myElement($name));
}
}
// Create a instance of above class
$doc = new myDocument();
// Register the node class
$doc->registerNodeClass('DOMElement', 'myElement');
// Use setRoot created in myDocument class
$root = $doc->setRoot('div');
// Use appendElement created in myElement
$child = $root->appendElement('div');
// Set the attribute
$child->setAttribute('style',
'background:blue; width:100px;height:100px');
echo $doc->saveXML();
?>
输出:
程序2:在此程序中,我们将使用类获取标签的文本内容。
class myElement extends DOMElement {
// Create a custom function to
// get the value of node
public function getData() {
return $this->nodeValue;
}
}
// Create a new DOMDocument
$doc = new DOMDocument;
// Load the XML
$doc->loadXML(
"
This is my heading
// Register the node class
$doc->registerNodeClass("DOMElement", "myElement");
// Get the element
$element = $doc->getElementsByTagName("h1")->item(0);
// Use the custom created getData() function
echo $element->getData();
?>
输出:
This is my heading