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 |