(PHP 5 >= 5.2.0)
DOMDocument::registerNodeClass — Enregistre la classe étendue utilisée pour créer un type de base de noeud
Cette méthode vous permet d'enregistrer votre propre classe étendue DOM à utiliser ensuite dans l'extension DOM de PHP.
Cette méthode ne fait pas partie du standard DOM.
La classe DOM qui vous voulez étendre. Vous pouvez trouver une liste de ces classes dans l'introduction du chapitre.
Bien sûr, vous ne pouvez pas enregistrer une classe étendant DOMDocument mais vous pouvez toujours commencer votre document en instanciant votre propre classe étendue.
Le nom de votre classe étendue. Si la valeur NULL est fournie, toutes les classes enregistrées précédemment étendant baseclass seront supprimées.
Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.
Version | Description |
---|---|
PHP 5.2.2 | Avant la version 5.2.2, une classe extendedclass précédemment enregistrée devait être supprimées avant de pouvoir en enregistrer une nouvelle étendant la même classe baseclass . |
Exemple #1 Ajout d'un nouvelle méthode à DOMElement
<?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');
// À partir d'ici, l'ajout d'un élément à un autre se fait en un seul appel !
$root = $doc->setRoot('root');
$child = $root->appendElement('child');
$child->setAttribute('foo', 'bar');
echo $doc->saveXML();
?>
L'exemple ci-dessus va afficher :
<?xml version="1.0"?> <root><child foo="bar"/></root>