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