Hallo,
Mit DOMDocument->DocumentElement gibts den Zugriff auf das Wurzel-Element; var_dump(wurzel) sagt mit, das sei jetzt ein DOMElement - mehr nicht (;-(;
Äh? Was hättest du erwartet?
wenn ich jetzt auf $knoten=$wurzel->getElementsById('knoten') anwende, erhalte ich ein Objekt vom Typ DOMNodeList.
Das glaube ich nicht. Es gibt kein getElementsById, sondern nur getElementById und das gibt niemals eine DOMNodeList zurück. Meinst du vielleicht getElementsByTagName?
Auch wenn es mit foreach ($knoten as $key $value) die $keys ausgibt, kann auf die einzelnen Elemente nicht per Arrayzugriff $knoten[0] zugegriffen werden.
Es gibt halt kein DOM-Binding für PHP, das das festlegt.
Wie aber greife ich auf den Inhalte von <unterknoten1> zu
Du meinst das Kindelement mit dem Namne unterknoten?
$elementknoten->getElementsByTagName('unterknoten1')->item(X)
oder ähnlich. Wenn du genau weißt, wo der Knoten liegt, kannst du natürlich auch mit firstChild, childNodes usw. vorgehen
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?
Der »Wert« ist wahrscheinlich ein Textknoten, der ein Kindknoten des unterknoten1-Elementknotens ist. Den kannst du entsprechend adressieren udn dessen nodeValie ändern.
Warum sind in meinem Manual einige Funktionen fast ident:
DOMElement->getAttribute()
DomElement->get_attribute()
? Ist DOMDocument PHP5 und DomElement Vorgänger?
Ja. Das erste ist Bestandteil von DOM, der Extension für PHP 5, das andere ist nur in DOM XML, der Extension für PHP 4 verfügbar.
Mathias