مثال‌های XQuery

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

مستند نمونه XML

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

"books.xml" :

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book category="COOKING">
  <title lang="fa">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="fa">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="fa">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 انتخاب تمام عناصر book زیر bookstore و /title انتخاب تمام عناصر title زیر هر book)

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

<title lang="fa">Everyday Italian</title>
<title lang="en">Harry Potter</title>
<title lang="fa">XQuery Kick Start</title>
<title lang="fa">Learning XML</title>

مقادیر

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

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

doc("books.xml")/bookstore/book[قیمت<30]

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

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