Voorbeeld van XQuery
Kom ons leer 'n paar basiese XQuery deur na 'n voorbeeld te kyk.
Die XML-voorbeelddokument
Ons sal die volgende XML-dokument in die voorbeelde hieronder gebruik.
"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>
Kyk na die "books.xml"-lêer in jou blaaier .
Hoe om nodusse van "books.xml" te kies?
Funksies
XQuery gebruik funksies om data uit XML-dokumente te onttrek.
Die doc()-funksie word gebruik om die "books.xml"-lêer oop te maak:
doc("books.xml")
Pad uitdrukkings
XQuery gebruik paduitdrukkings om deur elemente in 'n XML-dokument te navigeer.
Die volgende paduitdrukking word gebruik om al die titelelemente in die "books.xml"-lêer te kies:
doc("books.xml")/bookstore/book/title
(/boekwinkel kies die boekwinkelelement, /boek kies al die boekelemente onder die boekwinkelelement, en /titel kies al die titelelemente onder elke boekelement)
Die XQuery hierbo sal die volgende onttrek:
<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>
Predikate
XQuery gebruik predikate om die onttrekde data uit XML-dokumente te beperk.
Die volgende predikaat word gebruik om al die boekelemente onder die boekwinkelelement te kies wat 'n pryselement het met 'n waarde wat minder as 30 is:
doc("books.xml")/bookstore/book[price<30]
Die XQuery hierbo sal die volgende onttrek:
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>