phpbar.de logo

Mailinglisten-Archive

[php] Entsprechung simpleXML und DOM

[php] Entsprechung simpleXML und DOM

Norman Markgraf norman at sefiroth.de
Sam Jul 21 09:19:10 CEST 2007


Hallo Tim,

Tim schrieb:
> Hallo Liste,
>
> Ich habe folgenden XML-Dokumentausschnitt:
>
> <root>
>   <node1>
>     <param id="1">Param1</param>
>     <param id="2">Param3</param>
>     <param id="2">Param3</param>
>   </node1>
> </root>
>
>
> wenn ich mit simpleXML ein Objekt initialisiere, kann ich danach mittels
>
> $root->node1
>
> auf einen konkreten mir bekanntesn Knoten zugreifen.  Es ist von vorne
> herein klar, dass node1 nur ein einziges Mal vorkommt. 
>   

Und genau hier beginnt ist die Frage, woher DOM das wissen soll? - So 
klar, dass node1 nur ein einziges mal vorkommt ist es nämlich nicht. 
Daher ist im DOM auch ein einfacher durchgriff auf node1 nicht 
implementiert.

> Was ist denn die Entsprechung, wenn ich DOM nutze? Ich könnte zwar über
> getElementsByTagName('node1') vorgehen, erhalte dann aber wieder eine Liste
> von Knoten, die nur ein Element besitzt. Gibt es in DOM ähnlich wie bei
> simpleXML eine Syntax, den Knoten direkt anzusprechen?
>   
Also $root->getElementsByTagName('node1')->item[0]  ist hier schon der 
DOM konforme Ansatz. Natürlich gibt es immer so (quasi-)hacks wie man 
auch 'einfacher' an seine Kindknoten kommt.
Da DOMElement von DOMNode auch die Attribute erbst, so könnte man 
einfach $root->firstChild benutzen, aber ich rate davon dringend ab.
>
> Über eine kleine Einstiegshilfe würde ich mich sehr freuen.
>   
Als Tipp kann ich dir nur raten, Javaprogramme die DOM benutzen (nicht 
JDOM!) zu studieren, da lernst Du viel über den guten Umgang mit DOM.

> Liebe Grüße
> Tim
>
> PS: Die Fülle der DOM Methoden erschlägt mich gerade ziemlich. Man weiß
> irgendwie gar nicht, wo man zuerst anfangen sollte.
>
>   
Du machst das schon richtig und wenn Du fragen hast, dann einfach her damit.

Lieben Gruß

Norman

php::bar PHP Wiki   -   Listenarchive