XQuery चयन और फ़िल्टरिंग

XML उदाहरण दस्तावेज़

हम नीचे दिए गए उदाहरण में इस

आपके ब्राउज़र में "books.xml" फ़ाइल को देखें

एलिमेंट्स को चुनने और फ़िल्टर करना

जैसा कि पहले के अध्यायों में देखा गया है, हम हमें पथ व्यक्ति या FLWOR व्यक्ति का उपयोग करके एलिमेंट्स को चुनने और फ़िल्टर करने के लिए करते हैं.

नीचे दिए गए FLWOR व्यक्ति को देखें:

for $x in doc("books.xml")/bookstore/book
वहाँ $x/प्राइस>30
ऑर्डर बाइ $x/तीटिल
return $x/title
फॉर
(वृद्धिपूर्ण) in व्यक्ति द्वारा प्रदान होने वाले हर एक प्रत्येक वस्तु को एक वेरियेबल के बांधता है
लेट
(वृद्धिपूर्ण)
वहाँ
(वृद्धिपूर्ण) एक सर्त को निर्धारित करने के लिए
ऑर्डर बाइ
(वृद्धिपूर्ण) परिणाम के अनुक्रम को निर्धारित करने के लिए
रिटर्न
परिणाम में बदले जाने वाले सामग्री को निर्धारित करता है

फॉर वाक्य

फॉर वाक्य वेरियेबल को in व्यक्ति द्वारा प्रदान होने वाले हर एक प्रत्येक वस्तु से बांधता है. फॉर वाक्य चक्र पैदा कर सकता है. एक ही FLWOR व्यक्ति में अनेक for वाक्य हो सकते हैं.

एक फॉर वाक्य में निर्दिष्ट बार चक्र करने के लिए आप इसे इस्तेमाल कर सकते हैं:कीवर्ड टू इस प्रकार:

फॉर $एक्स in (1 टू 5)
return <test>{$x}</test>

परिणाम:

<test>1</test>
<test>2</test>
<test>3</test>
<test>4</test>
<test>5</test>

अट कीवर्ड सर्किट की गणना के लिए इस्तेमाल किया जा सकता है:

फॉर $एक्स अट $i in डॉक("books.xml")/bookstore/book/title
रिटर्न <book>{$i}. {डेटा($एक्स)}</book>

परिणाम:

<book>1. रोज़नीय इटालियन</book>
<book>2. हैरी पॉटर</book>
<book>3. XQuery किक स्टार्ट</book>
<book>4. एक्सएमएल सीखना</book>

फॉर वाक्य में भीअनेक in व्यक्ति की अनुमति हैकृपया , को इस्तेमाल करके हर इन व्यक्ति को विभाजित करें:

फॉर $एक्स इन (10,20), $वाई इन (100,200)
रिटर्न <test>एक्स={$एक्स} और वाई={$वाई}</test>

परिणाम:

<test>एक्स=10 और वाई=100</test>
<test>एक्स=10 और वाई=200</test>
<test>एक्स=20 और वाई=100</test>
<test>एक्स=20 और वाई=200</test>

लेट वाक्य

let सवाल के द्वारा वेरियेबल आबंटित किया जा सकता है, और बार-बार एक ही व्यक्तिवाक्य को दोहराने से बचा सकता है।let सवाल चक्र (iteration) पैदा नहीं करता।

let $x := (1 to 5)
return <test>{$x}</test>

परिणाम:

<test>1 2 3 4 5</test>

where सवाल

where सवाल का उपयोग किया जाता है कि परिणाम के लिए एक या अधिक शर्त (क्रिटेरिया) निर्धारित करे।

where $x/price>30 and $x/price<100

order by सवाल

order by सवाल का उपयोग किया जाता है कि परिणाम की छांटने की क्रमवारी को निर्धारित करे।यहाँ, हम category और title के आधार पर परिणाम को क्रमवारी करना चाहते हैं:

for $x in doc("books.xml")/bookstore/book
order by $x/@category, $x/title
return $x/title

परिणाम:

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

return सवाल:

return सवाल के लिए वापस की गई सामग्री निर्धारित करता है。

for $x in doc("books.xml")/bookstore/book
return $x/title

परिणाम:

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