U XPathu postoji 13 različitih axesa. Oni predstavljaju vezu no nodeova, a koriste se kako bi pronašli nodeove relativne u odnosu s tim nodeom.
Za pojašnjenje axesa, koristit ćemo sljedeći primjer.
<?xml version="1.0" encoding="ISO-8859-1"?>
<katalog>
<cjenik>
<proizvod>traperice</proizvod>
<cijena valuta="kuna">150</cijena>
<opis>tamno plave amadeus traperice</opis>
</cjenik>
</katalog>
| Ime | Opis |
| ancestor | uzima sve pretke trenutnog nodea |
| ancestor-or-self | uzima sve pretke trenutnog nodea i samog sebe |
| attribute | uzima sve atribute trenutnog nodea |
| child | uzima svu djecu trenutnog nodea |
| descendant | uzima sve potomke trenutnog nodea |
| descendant-or-self | uzima sve potomke trenutnog nodea i samog sebe |
| following | uzima sve nakon završnog taga trenutnog nodea |
| following-sibling | uzima svu braću nakon trenutnog nodea |
| namespace | uzima sve namespaces nodeove trenutnog nodea |
| parent | uzima sve roditelje trenutnog nodea |
| preceding | uzima sve prije početnog taga trenutnog nodea |
| preceding-sibling | uzima svu braću prije trenutnog nodea |
| self | uzima trenutni node |
Location path može biti relativan ili apsolutan. Razlika je u tome što apsolutni path počinje znakom "/", a relativni ne. U oba slučaja, path se sastoji od jednog ili više koraka.
/korak 1/korak 2/korak 3 <!-- apsolutni path -- >
korak 1/korak 2/korak 3 <!-- relativni path -- >
Korak se sastoji od:
axisa - definira vezu između odabranog nodea i trenutnog nodea
node testa - identificira node sa axisom
nula ili više predikata (predicates)
| Primjer | Opis |
| child::proizvod | uzima sve elemente proizvod koji su djeca trenutnog nodea |
| attribute::valuta | uzima sve atribute valuta trenutnog nodea |
| parent::cjenik | uzima sve roditelje cjenik trenutnog nodea |
| ancestor::proizvod | uzima sve pretke proizvod trenutnog nodea |
| child::*/child::cjenik | uzima sve unuke cjenik trenutnog nodea |
više na pcchip.hr