DOMDocument::normalizeDocument
DOMDocument::relaxNGValidate
DOMDocument
PHP Manual

# DOMDocument::registerNodeClass

(PHP 5 >= 5.2.0)

DOMDocument::registerNodeClass — Register extended class used to create base node type

### Description

bool DOMDocument::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.

### Parameters

`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.

### Return Values

Returns `TRUE` on success or `FALSE` on failure.

### ChangeLog

Version | Description
--- | ---
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` .

### Examples

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();
?>`

The above example will output:

    <?xml version="1.0"?>
    <root><child foo="bar"/></root>

DOMDocument::normalizeDocument
DOMDocument::relaxNGValidate
DOMDocument
PHP Manual