Aus dem Kurs: XSLT Grundkurs

XPath wie in einem Dateisystem verwenden – Tutorial zu XML

Aus dem Kurs: XSLT Grundkurs

XPath wie in einem Dateisystem verwenden

Schauen wir uns nun einmal die Adressierung mit Hilfe des XPaths konkret an. Und zwar an recht vielen Beispielen. Und bevor ich das Ganze mache, möchte ich zuerst einmal einer Person danken, von der ich nämlich diese Beispiel, die Sie gleich sehen werden und auch noch in den nächsten Videos sehen werden, übernommen habe, nämlich dem Miloslaw Nick. Der eine Webseite betreibt und diese Webseite heißt: zvon.org. Dort gibt es ein XPath-Tutorial und von diesem XPath-Tutorial habe ich die folgenden Beispiele genommen. Er hat mir das dankenswerterweise erlaubt, diese Beispiele zu nehmen und weil er die Sachen natürlich erstellt hat, soll er hier auch erwähnt werden. In diesem Video und auch in den nächsten Videos werden Sie immer beispielhaft sehen, wie XPath funktioniert. Ich kann Ihnen jetzt nicht zu jedem der Beispiele, die Sie jetzt hier in meinen Folien sehen ganz, ganz viel Quellcode zeigen, denn es soll hier an dieser Stelle und auch in den danach folgenden Videos wirklich darum gehen, Ihnen ein Verständnis für XPath zu geben, und Sie werden gleich verstehen, es sind sehr, sehr viele Beispiele und man kann nicht zu jedem Beispiel jetzt ein funktionierendes XSLT programmieren und hier im Rahmen dieses Video-Trainings zeigen, da werden Sie mir sicherlich Recht geben. Aber legen wir erst einmal los und jetzt werden Sie auch recht schnell das Prinzip hier im Rahmen dieser Beispiele sehen, und zwar im unteren Teil sehen Sie immer unser Beispiel-Dom, unser Beispiel-XML-Dokument. und zwar hier mit AAAs, BBBs, CCCs jeweils gekennzeichnet, und oben, da wo Sie jetzt das "/AAA" sehen, das ist unser XPath-Ausdruck. Na ja, klar und unten sehen Sie jetzt in roter Schrift was damit adressiert ist. Am Anfang werde ich das jetzt noch ein bisschen detaillierter erläutern, später werden Sie natürlich so ein bisschen das Prinzip, das Prozedere verstehen. Kleiner Tipp an dieser Stelle, wenn Sie den XPath-Ausdruck sehen, dann schauen Sie sich im Beispiel-Dokument nicht nur an, was adressiert wurde, sonder schauen sie sich auch mal an, was alles nicht adressiert wurde, das ist nämlich mit unter auch ganz interessant. Hier in unserem Beispiel ist es natürlich klar, wir haben so eine ganz typische Pfadangabe, wie man sie auch aus einem Dateisystem kennt. Unter Windows arbeitet man in der Regel mit Back-Slash, also mit dem Schrägstrich, der von links oben nach rechts unten geht, spielt aber im Alltag keine Rolle, der Back-Slash genauso wie der Slash sorgen dafür, dass die einzelnen Pfadangaben voneinander getrennt sind. Wenn wir mit einem Slash, beziehungsweise einem Back-Slash anfangen, heißt das soviel, bitte nimm das Wurzelelement, bitte gehe zum Root. und deswegen haben wir jetzt hier Slash, damit fange wir quasi in unserem Baum ganz oben an und über AAA haben wir jetzt das hier adressiert. Ich denke, dass ist noch ganz einfach leicht zu verstehen. Und auch die nächsten Beispiele werden sicherlich noch einfach und leicht zu verstehen sein. Gehen wir hier einmal weiter und jetzt haben wir hier ein AAA/CCC jeweils durch Slashs getrennt. Und dann sehen Sie, wenn wir uns das Ganze jetzt hier anschauen da geht es los, und hier dieses CC, dieser Knoten ist jetzt ausgewählt. Da wir jetzt hier AA, CC haben, sehen Sie, ist dieser Knoten hier ebenfalls ausgewählt. Sie merken es auch, es sind immer drei Buchstaben, wenn das aber jetzt hier vorlese, sage ich ganz häufig nur zwei Buchstaben aber nun gut, den dritten denken Sie sich einfach. Gehen wir weiter. Hier haben wir dann, etwas was das gleiche Konstrukt ist, geht einfach nur tiefer in den Pfad hinein AAA, DDD, BBB. Und dann sind wir hier auf diesem Knoten jetzt hier letztendlich gelandet, wo Sie hier dieses B sehen, hier an dritter Ebene. Jetzt hatten wir bis jetzt immer direkte Angaben, also klassische Pfadangaben. Man kann auch noch eine andere Konstruktion wählen, nämlich wenn wir hier Slash, Slash sagen. Dann sagen wir soviel wie, nimm irgendwo in einem Dokument alle BBBs, die du findest. Und deswegen sehen Sie, sind jetzt hier natürlich diese BBs, BBs BBs ausgewählt, alle anderen Elemente sind nicht ausgewählt. Sind ja in unserem Fall jetzt hier auch nicht rot gekennzeichnet. gehen wir noch zu einer weiteren Folie. Diese beiden Konstruktionsarten kann man jetzt miteinander mischen. Man kann jetzt hier sagen, hey, liefere mir alle BB-Elemente, die als Eltern-Element DD haben, völlig unabhängig was im Vorfeld kommt. Und deswegen sehen Sie, ist dieses BB jetzt hier rot, das ist also ausgewählt, weil es das Kind-Element von diesem DD ist und was jetzt noch oberhalb von DD ist, spielt keine Rolle, in diesem Fall wäre es AA. Und in diesem Fall hier wäre es ja CC, AA. Deswegen funktionieren jetzt hier beide Varianten. Und wir können hier jetzt natürlich auch mit Wildcard arbeiten, also in diesem Fall dieses Sternchen, bei dem wir jetzt sagen können, hey, es ist völlig egal, was für ein Element, Hauptsache das Eltern-Element ist DD, dessen Eltern-Element ist CC, dessen Eltern-Element ist AA. und dann haben wir jetzt hier genau diese Konstruktion, dass wir jetzt hier BB haben, davon das Vorgängerelement ist DD, davon das Vorgängerelement ist CC, davon das Vorgängerelement ist AA. Gehen wir noch weiter. Wir können jetzt auch hier diese beiden Techniken wieder miteinander kombinieren, wir haben jetzt hier Wildcards. Und haben jetzt hier BB. Die einzige Bedingung, die wir jetzt hier an dieses BB haben, ist, dass es letztendlich drei Vorgängerelemente haben muss. Deswegen ist das hier zum Beispiel ausgewählt, eins, zwei, drei. Wohingegen dieses hier unten nicht ausgewählt ist, genauso wenig wie jenes hier. Dieses hätte nämlich nur zwei Vorgänger, zwei Eltern-Elemente und das hier wiederum hätte vier Eltern-Elemente. Deswegen ist das Ganze jetzt hier jeweils nicht ausgewählt. Kommen wir noch zum letzten Beispiel hier in diesem Video zu diesen ganz klassischen Pfadausdrücken. Nämlich dass wir jetzt "//*" haben und damit im Grunde genommen sagen, hey, nimm einfach alles, was du findest und deswegen ist jetzt auch hier mein kompletter Dom, mein kompletter Pfad ist jetzt hier rot gesetzt. und Sie sehen, über diese Art und Weise könne wir ja jetzt mit Hilfe von XPath-Ausdrücken wenn man so will, innerhalb dieser Pfadkonstruktion, ein Element im Dom, in unserem XML-Baum adressieren und damit auswählen.

Inhalt