Sintassi XPath
- Pagina precedente Nodi XPath
- Pagina successiva Assi XPath
XPath utilizza espressioni di percorso per selezionare nodi o insiemi di nodi in un documento XML. I nodi vengono selezionati seguendo il percorso (path) o i passi (steps).
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>
Selezione di nodi
XPath utilizza espressioni di percorso per selezionare nodi in un documento XML. I nodi vengono selezionati seguendo il percorso o i passi (steps).
Di seguito sono elencate alcune delle espressioni di percorso più utili:
Espressione | Descrizione |
---|---|
nodename | Seleziona tutti i nodi figli di questo nodo. |
/ | Seleziona dal nodo radice. |
// | Dalla nodo corrente seleziona i nodi del documento che corrispondono alla selezione, indipendentemente dalla loro posizione. |
. | Seleziona il nodo corrente. |
.. | Seleziona il nodo genitore del nodo corrente. |
@ | Seleziona l'attributo. |
Esempio
Nella tabella sottostante, abbiamo elencato alcune espressioni di percorso e i risultati delle espressioni:
Espressione di percorso | Risultato |
---|---|
bookstore | Seleziona tutti i nodi figli dell'elemento bookstore. |
/bookstore |
Seleziona l'elemento radice bookstore. Nota: Se il percorso inizia con due slash ( / ), tale percorso rappresenta sempre il percorso assoluto fino a un elemento! |
bookstore/book | Seleziona tutti gli elementi book che sono figli dell'elemento bookstore. |
//book | Seleziona tutti gli elementi book che sono figli, indipendentemente dalla loro posizione nel documento. |
bookstore//book | Seleziona tutti gli elementi book che sono discendenti dell'elemento bookstore, indipendentemente dalla loro posizione. |
//@lang | Seleziona tutte le proprietà con nome lang. |
Predicati (Predicates)
Il predicato viene utilizzato per trovare un nodo specifico o un nodo che contiene un valore specifico.
Il predicato è incluso tra parentesi quadre.
Esempio
Nella tabella sottostante, elenchiamo alcune espressioni di percorso con predicati e i risultati delle espressioni:
Espressione di percorso | Risultato |
---|---|
/bookstore/book[1] | Seleziona il primo elemento book che è figlio dell'elemento bookstore. |
/bookstore/book[last()] | Seleziona l'ultimo elemento book che è figlio dell'elemento bookstore. |
/bookstore/book[last()-1] | Seleziona il secondo elemento book figlio dell'elemento bookstore, partendo da destra. |
/bookstore/book[position()<3] | Seleziona i primi due elementi book che sono figli dell'elemento bookstore. |
//title[@lang] | Seleziona tutti gli elementi title che hanno un attributo con nome lang. |
//title[@lang='eng'] | Seleziona tutti gli elementi title che hanno l'attributo lang con valore eng. |
/bookstore/book[price>35.00] | Seleziona tutti gli elementi book all'interno dell'elemento bookstore, e il valore dell'elemento price deve essere maggiore di 35.00. |
/bookstore/book[price>35.00]/title | Seleziona tutti gli elementi title degli elementi book dell'elemento bookstore, e il valore dell'elemento price deve essere maggiore di 35.00. |
Seleziona nodi sconosciuti
I simboli jolly XPath possono essere utilizzati per selezionare elementi XML sconosciuti.
Simbolo jolly | Descrizione |
---|---|
* | Corrisponde a qualsiasi nodo di elemento. |
@* | Corrisponde a qualsiasi nodo di attributo. |
node() | Corrisponde a qualsiasi tipo di nodo. |
Esempio
Nella seguente tabella, elenchiamo alcune espressioni di percorso e i risultati di queste espressioni:
Espressione di percorso | Risultato |
---|---|
/bookstore/* | Seleziona tutti i sottoelementi dell'elemento bookstore. |
//* | Seleziona tutti gli elementi del documento. |
//title[@*] | Seleziona tutti gli elementi title con attributi. |
Seleziona più percorsi
Utilizzando l'operatore "|" negli espressioni di percorso, è possibile selezionare più percorsi.
Esempio
Nella seguente tabella, elenchiamo alcune espressioni di percorso e i risultati di queste espressioni:
Espressione di percorso | Risultato |
---|---|
//book/title | //book/price | Seleziona tutti gli elementi title e price degli elementi book. |
//title | //price | Seleziona tutti gli elementi title e price del documento. |
/bookstore/book/title | //price | Seleziona tutti gli elementi title appartenenti agli elementi book dell'elemento bookstore, nonché tutti gli elementi price del documento. |
- Pagina precedente Nodi XPath
- Pagina successiva Assi XPath