PHP | DOMDocument registerNodeClass() Function

The DOMDocument::registerNodeClass() function is an inbuilt function in PHP which is used to register extended class used to create base node type.
Syntax:
bool DOMDocument::registerNodeClass( string $baseclass,
string $extendedclass )
Parameters: This function accept two parameters as mentioned above and described below:
- $baseclass: It specifies the DOM class that you want to extend.
- $extendedclass: It specifies the extended class name.
Return Value: This function returns TRUE on success or FALSE on failure.
Below given programs illustrate the DOMDocument::registerNodeClass() function in PHP:
Program 1: In this program we will create a HTML div element with CSS properties using classes.
<?php // 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(); ?> |
Output:
Program 2: In this program we will get the text content of a tag using classes.
<?php 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( "<root><div><h1>This is my heading</h1></div></root>"); // 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(); ?> |
Output:
This is my heading
Reference: https://www.php.net/manual/en/domdocument.registernodeclass.php




