Esempio XQuery
Impariamo alcune XQuery di base guardando un esempio.
Il documento di esempio XML
Utilizzeremo il seguente documento XML negli esempi seguenti.
"libri.xml":
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
Visualizza il file "books.xml" nel tuo browser .
Come selezionare i nodi da "books.xml"?
Funzioni
XQuery utilizza funzioni per estrarre dati da documenti XML.
La funzione doc() viene utilizzata per aprire il file "books.xml":
doc("books.xml")
Espressioni di percorso
XQuery utilizza le espressioni di percorso per navigare tra gli elementi in un documento XML.
La seguente espressione di percorso viene utilizzata per selezionare tutti gli elementi del titolo nel file "books.xml":
doc("books.xml")/bookstore/book/title
(/bookstore seleziona l'elemento libreria, /book seleziona tutti gli elementi libro sotto l'elemento libreria e /title seleziona tutti gli elementi titolo sotto ciascun elemento libro)
L'XQuery sopra estrarrà quanto segue:
<title lang="en">Everyday Italian</title>
<title lang="en">Harry Potter</title>
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>
predicati
XQuery utilizza predicati per limitare i dati estratti dai documenti XML.
Il seguente predicato viene utilizzato per selezionare tutti gli elementi libro sotto l'elemento libreria che hanno un elemento prezzo con un valore inferiore a 30:
doc("books.xml")/bookstore/book[price<30]
L'XQuery sopra estrarrà quanto segue:
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>