xpath                
            Percorsi di posizione e assi
        
        
            
    Ricerca…
Osservazioni
 Un percorso di posizione XPath è una serie di passaggi di posizione separati da un / personaggio: 
step1/step2/step3
  Un passaggio di posizione contiene un asse , un test del nodo e un elenco facoltativo di predicati . L' asse e il test del nodo sono separati da due caratteri di due punti :: . I predicati sono racchiusi tra parentesi quadre: 
axis::nodeTest[predicate1][predicate2]
  La valutazione di un percorso di ubicazione inizia con un set di nodi contenente il nodo di contesto dato dal contesto dell'espressione o dal nodo radice , se il percorso di ubicazione inizia con un / . Ad ogni passaggio, ogni nodo N nel set di nodi originale viene sostituito con l'insieme di nodi che 
- può essere raggiunto da N seguendo l' asse dato,
 - corrisponde al test del nodo e
 - corrisponde a tutti i predicati .
 
Il risultato di un'espressione del percorso di posizione è il set di nodi finale ottenuto dopo l'elaborazione di tutti i passaggi di posizione .
Attraversando elementi figlio
 Spostamento dal nodo radice a un elemento discendente utilizzando l'asse child : 
/child::html/child::body/child::div/child::span
  Poiché l'asse child è l'asse predefinito, questo può essere abbreviato in: 
/html/body/div/span
        Attraversando tutti i discendenti
 Gli assi descendant e descendant-or-self possono essere utilizzati per trovare tutti gli elementi discendenti di un nodo a qualsiasi profondità. Al contrario, l'asse child attraversa solo i bambini immediati. 
/child::html/descendant::span
/child::html/descendant-or-self::*
  La doppia barra // è una scorciatoia per /descendant-or-self::node()/ . Quindi le seguenti espressioni sono equivalenti: 
table//td
child::table/descendant-or-self::node()/child::td
child::table/descendant::td
table/descendant::td
        Attraversando gli antenati
 L'asse parent contiene solo il genitore di un nodo. L'espressione seguente seleziona l'elemento html effettuando una deviazione sull'elemento body : 
/child::html/child::body/parent::html
  .. è una scorciatoia per parent::node() 
 Gli assi degli ancestor e degli ancestor-or-self attraversano tutti gli antenati di un nodo. L'espressione seguente restituisce tutti gli elementi div che sono gli antenati del nodo di contesto: 
ancestor::div
        L'asse "auto"
 L'asse self contiene solo il nodo di contesto stesso. L'espressione . è una scorciatoia per self::node() e corrisponde sempre al nodo di contesto. Il . il collegamento è utile per enumerare i discendenti del nodo di contesto. Le seguenti espressioni sono equivalenti: 
.//span
self::node()/descendant-or-self::node()/child::span
descendant::span
  L' self asse può essere utile in XPath 1.0 predicati. Ad esempio, per selezionare tutti i figli h1 , h2 e h3 del nodo di contesto: 
*[self::h1 or self::h2 or self::h3]
        Attraversando i nodi seguenti e quelli precedenti
 I following-sibling assi following-sibling e following-sibling preceding-sibling contengono i fratelli prima o dopo il nodo di contesto e gli assi following e preceding contengono tutti i nodi nel documento prima o dopo il nodo di contesto, ma: 
- Nessuno di questi assi contiene nodi attributo o namespace.
 -  L'asse 
followingnon contiene discendenti. -  L'asse 
precedingnon contiene alcun antenato. 
Esempi:
following::span[1]
following-sibling::*[last()]
        Attributo di attraversamento e nodi dello spazio dei nomi
 Gli assi attribute e namespace contengono tutti i nodi attributo e spazio dei nomi di un elemento. La scorciatoia @ sta per attribute:: , quindi i seguenti sono equivalenti: 
child::div/attribute::class
div/@class