YouTip LogoYouTip

Xquery Example

XQuery Examples | Rookie Tutorial

XQuery Examples


In this section, let's learn some basic XQuery syntax by studying an example.


XML Example Document

We will use this XML document in the examples below.

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

View the "books.xml" file in your browser.


How to Select Nodes from "books.xml"?

Functions

XQuery uses functions to extract data from XML documents.

doc() is used to open the "books.xml" file:

doc("books.xml")

Path Expressions

XQuery uses path expressions to navigate through elements in an XML document.

The following path expression is used to select all title elements in the "books.xml" file:

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

(/bookstore selects the bookstore element, /book selects all book elements under the bookstore element, and /title selects all title elements under each book element)

The above XQuery can extract the following data:

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

Predicates

XQuery uses predicates to restrict the data extracted from an XML document.

The following predicate is used to select all book elements under the bookstore element whose price child element has a value less than 30:

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

The above XQuery can extract the following data:

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

← Xquery FlworXquery Intro β†’