Gli ultimi tutorial di sviluppo web
 

XQuery Esempio


Impariamo alcuni XQuery di base, cercando in un esempio.


L'esempio documento XML

Useremo il seguente documento XML negli esempi che seguono.

"Books.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 "books.xml" file nel browser .


Come selezionare i nodi da "books.xml"?

funzioni

XQuery utilizza le funzioni per estrarre dati da documenti XML.

Il doc() funzione viene utilizzata per aprire il "books.xml" del file:

doc("books.xml")

espressioni di percorso

XQuery usa espressioni di percorso per spostarsi tra gli elementi di un documento XML.

La seguente espressione percorso viene utilizzato per selezionare tutti gli elementi titolo nel "books.xml" del file:

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

(/ Libreria seleziona l'elemento libreria, / libro seleziona tutti gli elementi libro sotto l'elemento libreria, e / titolo seleziona tutti gli elementi titolo sotto ogni elemento book)

Il XQuery sopra estrarrà il seguente:

<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 di prezzo con un valore che è inferiore a 30:

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

Il XQuery sopra estrarrà il seguente:

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