Axes (assi) XPath

Documento di esempio XML

Utilizzeremo questo documento XML negli esempi seguenti:

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>
<book>
  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>
</bookstore>

Asse XPath

L'asse può definire un insieme di nodi relativi al nodo corrente.

Nome dell'asse Risultato
ancestor Seleziona tutti i nodi ascendenti, come genitori, nonni e altri.
ancestor-or-self Seleziona tutti i nodi ascendenti, come genitori, nonni e altri, nonché il nodo stesso.
attribute Seleziona tutti gli attributi del nodo corrente
child Seleziona tutti i figli elementi del nodo corrente
descendant Seleziona tutti i figli, nipoti e altri elementi discendenti del nodo corrente.
descendant-or-self Seleziona tutti i figli, nipoti e altri elementi discendenti del nodo corrente, nonché il nodo stesso.
following Seleziona tutti i nodi successivi al tag di fine del nodo corrente nel documento.
namespace Seleziona tutti i nodi di 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同级 precedenti al nodo corrente.
self Seleziona il nodo corrente.

Espressione del percorso di posizione

Il percorso di posizione può essere assoluto o relativo.

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

Percorso posizionale assoluto:

/step/step/...

Percorso posizionale relativo:

step/step/...

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

Passo (step) include:

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

Sintassi del passo:

Nome dell'asse::testo[nodo-test[clausola]]

Esempio

Esempio Risultato
child::book Seleziona tutti i figli elementi book che appartengono al nodo corrente
attribute::lang Seleziona l'attributo lang del nodo corrente
child::* Seleziona tutti i figli elementi del nodo corrente
attribute::* Seleziona tutti gli attributi 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 precursori book del nodo corrente
ancestor-or-self::book Seleziona tutti i precursori book del nodo corrente e il nodo corrente stesso (se questo nodo è un nodo book)
child::*/child::price Seleziona tutti i figli孙节点 del nodo corrente con l'attributo price.