Die XML Path Language, kurz XPath, dient zur Adressierung von Bereichen in XML-Dokumenten. Aktuell ist die Version 2.0. Mit der Sprache können XML-Elemente ausgewählt werden und auch einfache Funktionen auf diesen Elementen ausgeführt werden. Die Adressierung der Elemente beruht auf der Baumstruktur von XML-Dokumenten. Als Beispiel dient das XML-Dokument aus den vorherigen Beispielen:<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="/selfxml.xsl" type="text/xsl" ?>
<Mitglieder>
<Mitglied Id="1">
<Vorname>
- Thomas
</Vorname>
<Nachname>
- Maier
</Nachname>
<Strasse>
- Hauptstrasse 12
</Strasse>
<PLZ>
- 12345
</PLZ>
<Stadt>
- Stuttgart
</Stadt>
</Mitglied>
<Mitglied Id="2">
<Vorname>
- Michael
</Vorname>
<Nachname>
- Schneider
</Nachname>
<Strasse>
- Bahnhofsstrasse 21
</Strasse>
<PLZ>
- 54321
</PLZ>
<Stadt>
- Stuttgart
</Stadt>
</Mitglied>
</Mitglieder>
Um nun ein oder mehrere Elemente zu selektieren, wird der Pfad von dem Wurzelelement definiert. Das Wurzelelement kann mit /Mitglieder selektiert werden. Der Ausdruck /Mitglieder/Mitglied/Vorname referenziert die beiden Vorname-Elemente mit den Inhalten Thomas und Michael. Soll nur der Vorname des ersten Mitglieds selektiert werden, geht dies mit /Mitglieder/Mitglied[1]/Vorname .
Eine andere Möglichkeit ist die Selektion anhand einer Abfrage der Attribute. Attribute werden mit dem @-Zeichen adressiert. Um den Vorname des zweiten Mitgliedes zu selektieren, geht dies mit /Mitglieder/Mitglied[@id="2"]/Vorname .
Um alle Elemente eines Namens zu selektieren, ohne die Ebene bzw. die Elternelmente anzugegeben, beginnt die Adressierung mit zwei Slash, also // . Ein Beispiel ist der Ausdruck //Mitglied , der alle Mitglied-Elemente selektiert.