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.