Ultimele tutoriale de dezvoltare web
 

XQuery Exemplu


Să învățăm câteva XQuery de bază de privirea de la un exemplu.


Exemplu Documentul XML

Vom folosi următorul document XML în exemplele de mai jos.

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

Vezi "books.xml" fișierul în browser .


Cum de a selecta Nodurile De la „books.xml“?

funcţii

XQuery utilizează funcții pentru a extrage date din documente XML.

doc() funcția este folosită pentru a deschide "books.xml" fișier:

doc("books.xml")

Expresiile Path

XQuery folosește expresii de cale pentru a naviga prin elemente într-un document XML.

Următoarea expresie cale este utilizată pentru a selecta toate elementele titlu din "books.xml" fișier:

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

(/ Librărie selectează elementul librărie, / carte selectează toate elementele de carte sub elementul librărie, și / titlu selectează toate elementele din titlu sub fiecare element de carte)

XQuery de mai sus va extrage următoarele:

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

predicate

XQuery folosește predicate pentru a limita datele extrase din documentele XML.

Următorul predicat este folosit pentru a selecta toate elementele de carte sub elementul librărie care au un element de preț cu o valoare care este mai mică de 30:

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

XQuery de mai sus va extrage următoarele:

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