Axle XPath (Axle)

Esempio documento XML

Useremozioniamo questo documento XML nell'esempio seguente:

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>

  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>

  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>
</bookstore>

Asse XPath

L'asse può definire un set di nodi relativi al nodo corrente. Risultato
Nome asse ancestor
Seleziona tutti i nodi antenati (padre, nonno, ecc.) del nodo corrente. ancestor-or-self
Seleziona tutti i nodi antenati (padre, nonno, ecc.) e il nodo stesso del nodo corrente. Seleziona tutte le proprietà del nodo corrente.
attribute Seleziona tutti i figli elementi del nodo corrente.
child descendant
Seleziona tutti i figli (figli, nipoti, ecc.) del nodo corrente. descendant-or-self
Seleziona tutti i figli (figli, nipoti, ecc.) e il nodo stesso del nodo corrente. following
Seleziona tutti i nodi successivi al tag di fine del nodo corrente nel documento. namespace
Seleziona tutti i nodi namespace del nodo corrente. parent
Seleziona il nodo genitore del nodo corrente. preceding
Seleziona tutti i nodi precedenti al tag di inizio del nodo corrente nel documento. preceding-sibling
Seleziona tutti i nodi同级 del nodo corrente precedenti. self

Seleziona il nodo corrente.

Espressione del percorso posizionale

Il percorso posizionale può essere assoluto o relativo.

Il percorso assoluto inizia con una barra obliqua ( / ), mentre il percorso relativo non lo fa. In entrambi i casi, il percorso posizionale include uno o più passi, ciascuno dei quali è diviso da una barra:

/step/step/...

Percorso posizionale relativo:

step/step/...

Ogni passo viene calcolato in base ai nodi nel set di nodi corrente.

Il passo (step) include:

Asse (axis)
Definisci la relazione albero tra il nodo selezionato e il nodo corrente
Test del nodo (node-test)
Riconosci i nodi all'interno di un asse
Zero o più predicati (predicate)
Estrai ulteriormente il set di nodi selezionati

Sintassi del passo:

Nome asse::test[ predicato ]

Esempio

Esempio Risultato
child::book Seleziona tutti i nodi book che appartengono ai figli del nodo corrente.
attribute::lang Seleziona l'attributo lang del nodo corrente.
child::* Seleziona tutti i figli elementi del nodo corrente.
attribute::* Seleziona tutte le proprietà del nodo corrente.
child::text() Seleziona tutti i figli testuali del nodo corrente.
child::node() Seleziona tutti i figli del nodo corrente.
descendant::book Seleziona tutti i discendenti book del nodo corrente
ancestor::book Seleziona tutti i genitori book del nodo corrente
ancestor-or-self::book Seleziona tutti i genitori book del nodo corrente e il nodo corrente stesso se questo nodo è un nodo book
child::*/child::price Seleziona tutti i figli price del nodo corrente.