Hallo frankx.
wenn ich jetzt auf $knoten=$wurzel->getElementsById('knoten') anwende, erhalte ich ein Objekt vom Typ DOMNodeList.
Auch wenn es mit foreach ($knoten as $key $value) die $keys ausgibt, kann auf die einzelnen Elemente nicht per Arrayzugriff $knoten[0] zugegriffen werden.
Versuche einmal Folgendes:
$knoten->[link:http://de2.php.net/manual/de/function.dom-domnodelist-item.php@title=item](0)
(Ja, ich finde es auch unsinnig, dass getElementById, welches zwangsläufig nur ein Objekt zurück geben kann, dennoch nur per Index auf den Wert zugreifen lässt.)
Wie aber greife ich auf den Inhalte von <unterknoten1> zu und wie verändere ich diesen Wert bzw. analog wie greife ich direkt auf knoten 1 zu, was mit simpleXML mit $xmldoc->knoten[0] bzw. $xmldoc->knoten[0]->unterknoten1 geht?
PHPs DOM verhält sich analog zum JS-DOM, d. h. du kannst ebenso mit firstChild, nodeValue und dergleichen agieren.
Warum sind in meinem Manual einige Funktionen fast ident:
DOMElement->getAttribute()
DomElement->get_attribute()
? Ist DOMDocument PHP5 und DomElement Vorgänger?
Siehe Handbuch zu den DOM-Funktionen:
The DOM extension is the replacement for the DOM XML extension from PHP 4. The extension still contains many old functions, but they should no longer be used. In particular, functions that are not object-oriented should be avoided.
Macht es Sinn, das einfache auslesen und updaten von Variablen überhaupt über DOMDocument zu realisieren, oder sollt mensch das lediglich zum Eingreifen/Erweitern/Modifizieren der Struktur nehmen, bzw. validieren und parsen mit xslts, und das Variablen-Update mit SimpleXML machen?
Das musst du entscheiden. Vieles lässt sich bereits mit simpleXML bewerkstelligen, doch wenn eine komplexe Manipulation des Dokumentenbaumes erforderlich ist, ist DOMDocument IMHO besser geeignet.
Einen schönen Sonntag noch.
Gruß, Ashura
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
mathbr:del.icio.us/ mathbr:w00t/