مثال‌های XQuery

در این بخش، با بررسی یک مثال، برخی از نکات اساسی زبان XQuery را یاد خواهیم گرفت.

مستند نمونه XML

ما در مثال‌های زیر از این سند XML استفاده خواهیم کرد.

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

فایل "books.xml" را در مرورگر خود مشاهده کنید.

چگونه می‌توانم از "books.xml" گره‌ها را انتخاب کنم؟

توابع

XQuery از توابع برای استخراج داده‌ها از سند XML استفاده می‌کند.

doc() برای باز کردن فایل "books.xml" استفاده می‌شود:

doc("books.xml")

عبارت مسیر

XQuery از عبارت مسیر برای هدایت در سند XML استفاده می‌کند.

عبارت مسیر زیر برای انتخاب همه عناصر title در فایل "books.xml" استفاده می‌شود:

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

انتخاب عنصر bookstore از /bookstore، انتخاب همه عناصر book زیر bookstore و انتخاب همه عناصر title زیر هر عنصر book

XQuery بالا می‌تواند داده‌های زیر را استخراج کند:}

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

عبارت

XQuery از عبارات برای محدود کردن داده‌هایی که از مستند XML استخراج می‌شود، استفاده می‌کند.

عبارات زیر برای انتخاب تمام عناصر book زیر bookstore و همچنین برای انتخاب عناصر book که مقدار price آنها کمتر از 30 باشد، استفاده می‌شود:

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

XQuery بالا می‌تواند داده‌های زیر را استخراج کند:

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