Re: Extending Element class in a dom tree?

From: Date: Sat, 30 Apr 2005 22:51:04 +0000
Subject: Re: Extending Element class in a dom tree?
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-214276@lists.php.net to get a copy of this message
Hi again On 4/30/05, Christian Stocker <chregu@gmail.com> wrote: > On 4/30/05, Erik Franzén <erik@nordicaudi.com> wrote: > > The DOM implementation i PHP5 allows classes to be extended. Extending > > the Document class is no problem, but how can I extend the Element class > > and use it in a DOM tree? > > > > DOMDocument::createElement returns a DOMElement object which you cannot > > extend. > > > > Could this be a solution? > > > > class MyElement extends DomElement { > > function __construct($a_stTagName) { > > //has to be called! > > parent::__construct($a_stTagName); > > } > > > > function myFunction() { > > // do something > > } > > } > > > > $oDom = new DomDocument(); > > $oMyElement = new MyElement('mytag'); > > > > $oMyElement = $oDom->importNode($oMyElement, true); > > $oMyElement = $oDom->appendChild($oMyElement); > > Does not work, will never work, just forget about it ;) Ok, that was not the really right answer ;) Of course it does work. You can even do stuff on that element, if you use the variable, resp. reference ($oMyElement) for doing this. What doesn't work (and I referred to that) is getting this object back from the DomDocument, so for example: $oDom->documentElement will give you the DomElement back and not your new MyElement. Hope it's a little bit clearer now chregu > > chregu > > > > Regards > > /Erik > > > > -- > > PHP General Mailing List (http://www.php.net/) > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > -- > christian stocker | Bitflux GmbH | schoeneggstrasse 5 | ch-8004 zurich > phone +41 1 240 56 70 | mobile +41 76 561 88 60 | fax +41 1 240 56 71 > http://www.bitflux.ch | chregu@bitflux.ch | gnupg-keyid > 0x5CE1DECB > -- christian stocker | Bitflux GmbH | schoeneggstrasse 5 | ch-8004 zurich phone +41 1 240 56 70 | mobile +41 76 561 88 60 | fax +41 1 240 56 71 http://www.bitflux.ch | chregu@bitflux.ch | gnupg-keyid 0x5CE1DECB

« previous php.general (#214276) next »