info@a-coding-project.de

XPath: Grundlagen

Um Vergleiche, Rechnungen oder andere mathematische oder logische Schlußfolgerungen ziehen zu können sind Variablen, Operatoren und Funktionen notwendig. XPath versteht sich hierbei allerdings nicht als Programmiersprache - die einzelnen Hilfsmittel dienen vielmehr dazu einen Knoten genauer beschrieben zu können.

Variablen

XPath selbst definiert keine Variablen, jedoch können die in XSLT definierten Variablen verwendet werden. Den Wert einer Variablen erhält man indem man ein Dollarzeichen ($) vor den Variablennamen setzt. Beispiel:

<xsl:variable name="meineVariable"> mein Wert </xsl:variable>

$meineVariable besitzt demzufolge den Wert " mein Wert ".

Funktionen

Ebenso wie XSLT definiert auch XPath einige Funktionen die zur Bestimmung von Knoten genutzt werden können. Eine Funktion wird immer durch ihren Namen sowie die anschließenden Klammern ausgedrückt. Innerhalb der Klammern können bestimmten Funktionen Parameter (oder auch Argumente genannt) übergeben werden. Die einzelnen Funktionen werden in einem späteren Abschnitt erläutert.

Operatoren

XPath definiert die folgenden Operatoren:

OperatorBeschreibung
( )Klammern umschließen einen logischen Zusammenhang. Kann z.B. bei mathematischen Rechnungen verwendet werden aber auch bei logischen Verknüpfungen usw.
|ODER bei Knotenmenge. Gibt aus zwei Mengen A und B die Menge der Knoten aus die in A oder B enthalten sind.
/Verbindet einen Ausdruck und einen relativen Pfad.
orVerknüpft zwei logische Ausdrücke mit ODER
andVerknüpft zwei logische Ausdrücke mit UND
=Prüft zwei Ausdrücke auf Gleichheit
!=Prüft zwei Ausdrücke auf Ungleichheit
<Prüft ob der erste Ausdruck kleiner ist als der zweite
<=Prüft ob der erste Ausdruck kleiner oder gleich dem zweiten ist
>Prüft ob der erste Ausdruck größer ist als der zweite
>=Prüft ob der erste Ausdruck größer oder gleich dem zweiten ist
-Subtrahiert zwei Zahlen bzw. ergibt das negativ (-3, -2, usw.) *1
+Addiert zwei Zahlen
*Multipliziert zwei Zahlen.
divDividiert eine Zahl von einer anderen *2
modModuliert eine Zahl von einer anderen (gibt den Rest einer Division)
*1 Da das Minuszeichen auch als Bindestrich interpretiert werde kann muss beim Rechnen ein Leerzeichen um das Minus gesetzt werden. Es besteht also ein Unterschied zwischen abc-def und abc - def.
*2 Da der Schrägstrich schon als Trennzeichen verwendet wird, muss zur Division div verwendet werden.

Ein Vergleich liefert nur dann wahr/falsch wenn auch beide Ausdrücke gleich/ungleich sind. Wird eine Knotenmenge mit einem String (Text) verglichen, so ist der gesamte Ausdruck wahr, wenn mindestens ein Knoten der Menge einen Textwert gleich dem String hat. Werden zwei Knotenmengen verglichen, so ist der gesamte Ausdruck dann wahr, wenn mindestens ein Knoten des ersten Ausdrucks auch Konten des zweiten Ausdrucks ist. Um zu prüfen ob zwei Knotenmengen übereinstimmend sind muss daher geprüft werden ob kein Knoten aus A in B enthalten ist und das Ergebnis dann verneint werden: not($A = $B) .

Weiterlesen: ⯈ Pfade bestimmen

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Auch interessant