xpath                
            Locatiepaden en assen
        
        
            
    Zoeken…
Opmerkingen
 Een XPath- locatiepad is een reeks locatiestappen gescheiden door een / -teken: 
step1/step2/step3
  Een locatiestap bevat een as , een knooppunttest en een optionele lijst met predicaten . De as en de knooppunttest worden gescheiden door twee dubbele punten :: De predikaten staan tussen vierkante haken: 
axis::nodeTest[predicate1][predicate2]
  De evaluatie van een locatiepad begint met een knooppuntset die het contextknooppunt bevat, gegeven door de context van de uitdrukking, of het rootknooppunt , als het locatiepad begint met een / . Bij elke stap wordt elk knooppunt N in het oorspronkelijke hoofdknooppuntverzamelingscluster vervangen door de set knopen die 
- kan worden bereikt vanaf N volgens de gegeven as ,
 - komt overeen met de knooppunttest , en
 - komt overeen met alle predikaten .
 
Het resultaat van een locatiepadexpressie is de uiteindelijke knooppuntset verkregen na het verwerken van alle locatiestappen .
Onderliggende kindelementen
 Met behulp van de child as van het basisknooppunt naar een afstammend element gaan: 
/child::html/child::body/child::div/child::span
  Omdat de child as de standaardas is, kan deze worden afgekort tot: 
/html/body/div/span
        Alle afstammelingen doorkruisen
 De descendant en descendant-or-self kunnen worden gebruikt om alle afstammingselementen van een knooppunt op elke diepte te vinden. In tegenstelling, het child as doorloopt alleen directe kinderen. 
/child::html/descendant::span
/child::html/descendant-or-self::*
  De dubbele schuine streep // is een snelkoppeling voor /descendant-or-self::node()/ . De volgende uitdrukkingen zijn dus equivalent: 
table//td
child::table/descendant-or-self::node()/child::td
child::table/descendant::td
table/descendant::td
        Voorouders oversteken
 De parent as bevat alleen het bovenliggende van een knooppunt. De volgende expressie selecteert het html element door een omweg te maken over het body : 
/child::html/child::body/parent::html
  .. is een snelkoppeling voor parent::node() 
 De ancestor en ancestor-or-self assen doorkruisen alle voorouders van een knooppunt. De volgende expressie retourneert alle div elementen die voorouders zijn van het contextknooppunt: 
ancestor::div
        De "zelf" -as
 De self as bevat de context knooppunt zelf. De uitdrukking . is een snelkoppeling voor self::node() en komt altijd overeen met het contextknooppunt. De . snelkoppeling is handig voor het opsommen van afstammelingen van het contextknooppunt. De volgende uitdrukkingen zijn equivalent: 
.//span
self::node()/descendant-or-self::node()/child::span
descendant::span
  De self as kan nuttig zijn bij het XPath 1.0 predikaten. Om bijvoorbeeld alle h1 , h2 en h3 kinderen van het contextknooppunt te selecteren: 
*[self::h1 or self::h2 or self::h3]
        Volgende en voorgaande knooppunten doorlopen
 De assen van following-sibling en preceding-sibling bevatten de broers en zussen voor of na het contextknooppunt, en de following en preceding assen bevatten alle knooppunten in het document vóór of na het contextknooppunt, maar: 
- Geen van deze assen bevatten kenmerk- of naamruimteknooppunten.
 -  De 
followingas bevat geen afstammelingen. -  De 
precedingas bevat geen voorouders. 
Voorbeelden:
following::span[1]
following-sibling::*[last()]
        Doorkruisen van kenmerk- en naamruimteknooppunten
 De assen van het attribute en de namespace bevatten alle knooppunten van het kenmerk en de naamruimte van een element. De sneltoets @ staat voor attribute:: , dus het volgende is equivalent: 
child::div/attribute::class
div/@class