Gli ultimi tutorial di sviluppo web
 

XPath Assi


L'esempio documento XML

Useremo il seguente documento XML negli esempi che seguono.

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

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

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

</bookstore>

XPath Assi

Un asse definisce un relativo set-nodo al nodo corrente.

AXISNAME Risultato
antenato Seleziona tutti gli antenati (parent, grandparent, etc.) del nodo corrente
antenato-or-self Seleziona tutti gli antenati (parent, grandparent, etc.) del nodo corrente e il nodo corrente stessa
attributo Seleziona tutti gli attributi del nodo corrente
bambino Seleziona tutti i figli del nodo corrente
discendente Seleziona tutti i discendenti (children, grandchildren, etc.) del nodo corrente
descendant-or-self Seleziona tutti discendenti (children, grandchildren, etc.) del nodo corrente e il nodo corrente stessa
a seguire Seleziona tutto nel documento dopo il tag del nodo corrente di chiusura
following-sibling Seleziona tutti fratelli dopo il nodo corrente
namespace Seleziona tutti i nodi namespace del nodo corrente
genitore Seleziona il genitore del nodo corrente
precedente Seleziona tutti i nodi che compaiono prima del nodo corrente nel documento, eccetto antenati, attribuiscono nodi e nodi namespace
preceding-sibling Seleziona tutti fratelli prima nodo corrente
se stesso Seleziona il nodo corrente

Location Path Expression

Un percorso di posizione può essere assoluta o relativa.

Un percorso di posizione assoluto inizia con una barra ( / ) e un percorso posizione relativa non lo fa. In entrambi i casi il percorso di posizione è costituito da uno o più stadi, ciascuno separato da una barra:

An absolute location path:

/step/step/...

A relative location path:

step/step/...

Ogni passo viene valutata contro i nodi nella corrente set di nodi.

Un passo consiste di:

  • un asse (defines the tree-relationship between the selected nodes and the current node)
  • un nodo-test (identifies a node within an axis)
  • zero o più predicati (to further refine the selected node-set)

La sintassi per un passo di locazione è:

axisname::nodetest[predicate]

Esempi

Esempio Risultato
child :: libro Seleziona tutti i nodi del libro che sono figli del nodo corrente
attribuire :: Lang Seleziona il lang attributo del nodo corrente
bambino::* Seleziona tutti gli elementi figli del nodo corrente
attributo::* Seleziona tutti gli attributi del nodo corrente
child :: text() Seleziona tutti i figli dei nodi di testo del nodo corrente
child :: node() Seleziona tutti i figli del nodo corrente
discendente :: libro Seleziona tutti discendenti telefonico del nodo corrente
antenato :: libro Seleziona tutti gli antenati telefonico del nodo corrente
antenato-or-self :: libro Seleziona tutti gli antenati del libro del nodo corrente - e l'attuale e se si tratta di un nodo libro
child :: * / child :: prezzo Seleziona tutti nipoti prezzo del nodo corrente