Esempio XQuery

In questa sezione, esamineremo un esempio per imparare alcune sintassi di base di XQuery.

Esempio di documento XML

Utilizzeremo questo documento XML negli esempi seguenti.

"books.xml" :

<?xml version="1.0" encoding="ISO-8859-1"?>
<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"?

Funzione

XQuery utilizza funzioni per estrarre dati dal documento XML.

doc() viene utilizzato per aprire il file "books.xml":

doc("books.xml")

Espressione di percorso

XQuery utilizza espressioni di percorso per navigare attraverso gli elementi nel documento XML.

L'espressione di percorso seguente viene utilizzata per selezionare tutti gli elementi title nel file "books.xml":

doc("books.xml")/bookstore/book/title

(/bookstore seleziona l'elemento bookstore, /book seleziona tutti gli elementi book sotto l'elemento bookstore, e /title seleziona tutti gli elementi title sotto ogni elemento book)

Il seguente XQuery può estrarre i seguenti dati:

<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>

Predicato

XQuery utilizza predicati per limitare i dati estratti dal documento XML.

Le seguenti predicati vengono utilizzati per selezionare tutti gli elementi book sotto l'elemento bookstore e il valore dell'elemento price deve essere inferiore a 30:

doc("books.xml")/bookstore/book[prezzo<30]

Il seguente XQuery può estrarre i seguenti dati:

<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>