XQuery ਚੋਣ ਅਤੇ ਫਿਲਟਰਿੰਗ

XML ਉਦਾਹਰਣ ਦਸਤਾਵੇਜ਼

ਅਸੀਂ ਹੇਠਲੇ ਉਦਾਹਰਣ ਵਿੱਚ ਇਸ "books.xml" ਦਸਤਾਵੇਜ਼ ਦਾ ਉਪਯੋਗ ਕਰਦੇ ਰਹਾਂਗੇ (ਅਤੇ ਉੱਪਰੋਕਤ ਚਿੱਤਰ ਵਿੱਚ ਵਰਤੇ ਗਏ XML ਦਸਤਾਵੇਜ਼ ਨਾਲ ਸਮਾਨ ਹੈ)。

ਤੁਹਾਡੇ ਬਰਾਉਜ਼ਰ ਵਿੱਚ "books.xml" ਫਾਇਲ ਨੂੰ ਦੇਖੋ.

ਤੱਤਾਂ ਨੂੰ ਚੁਣਨ ਅਤੇ ਫਿਲਟਰ ਕਰਨ

ਜਿਵੇਂ ਪਹਿਲਾਂ ਦੇ ਅਧਿਆਏ ਵਿੱਚ ਦੇਖਿਆ ਗਿਆ ਹੈ ਕਿ ਅਸੀਂ ਪਾਥ ਐਕਸਪ੍ਰੈਸ਼ਨ ਜਾਂ FLWOR ਪ੍ਰਗਟਾਵੇ ਦੀ ਮਦਦ ਨਾਲ ਤੱਤਾਂ ਨੂੰ ਚੁਣਨ ਅਤੇ ਫਿਲਟਰ ਕਰਨ ਲਈ ਵਰਤਾਂਦੇ ਹਾਂ।

ਹੇਠ ਲਿਖੇ FLWOR ਪ੍ਰਗਟਾਵੇ ਨੂੰ ਦੇਖੋ:

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
for
(ਵਾਲੀ) in ਪ੍ਰਗਟਾਵੇ ਵਾਲੇ ਹਰੇਕ ਵਸਤੂ ਨੂੰ ਇੱਕ ਵਰਤਾਰੇ ਨਾਲ ਬੰਧਿਆ ਜਾ ਸਕਦਾ ਹੈ
let
(ਵਾਲੀ)
where
(ਵਾਲੀ) ਇੱਕ ਸ਼ਰਤ ਨਿਰਧਾਰਿਤ ਕਰਦਾ ਹੈ
order by
(ਵਾਲੀ) ਨਤੀਜੇ ਦੀ ਕਰਨ ਕਰਨ ਦੀ ਕਰਨ ਕਰਨ
return
ਨਤੀਜੇ ਵਿੱਚ ਵਾਪਸ ਕੀਤੀ ਜਾਣ ਵਾਲੀ ਸਮਾਚਾਰ ਨੂੰ ਨਿਰਧਾਰਿਤ ਕਰਦਾ ਹੈ

for ਸਟੇਟਮੈਂਟ

for ਸਟੇਟਮੈਂਟ ਵਰਤਾਰੇ ਨੂੰ in ਪ੍ਰਗਟਾਵੇ ਵਾਲੇ ਹਰੇਕ ਵਸਤੂ ਨਾਲ ਬੰਧਿਆ ਜਾ ਸਕਦਾ ਹੈ।for ਸਟੇਟਮੈਂਟ ਇੱਕ ਸਰਕਟ ਪੈਦਾ ਕਰਦਾ ਹੈ।ਇੱਕ FLWOR ਪ੍ਰਗਟਾਵੇ ਵਿੱਚ ਬਹੁਤ ਸਾਰੇ for ਸਟੇਟਮੈਂਟ ਹੋ ਸਕਦੇ ਹਨ।

ਇੱਕ for ਸਟੇਟਮੈਂਟ ਵਿੱਚ ਨਿਰਧਾਰਿਤ ਸਰਕਟਾਂ ਲਈ ਇਹ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ:ਕੀਤਾ ਗਿਆ ਕੀਤਾ ਕੀਤਾ :

for $x in (1 to 5)
return <test>{$x}</test>

ਨਤੀਜਾਃ

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

ਕੀਤਾ ਗਿਆ ਕੀਤਾ ਕੀਤਾ ਇਹ ਸਿਰਫ ਸਰਕਟਾਂ ਲਈ ਹੈ ਕਿਉਂਕਿ ਸਰਕਟਾਂ ਨੂੰ ਗਣਨਾ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ:

for $x at $i in doc("books.xml")/bookstore/book/title
return <book>{$i}. {data($x)}</book>

ਨਤੀਜਾਃ

<book>1. Everyday Italian</book>
<book>2. Harry Potter</book>
<book>3. XQuery Kick Start</book>
<book>4. Learning XML</book>

for ਸਟੇਟਮੈਂਟ ਵਿੱਚ ਵੀਬਹੁਤ ਸਾਰੇ in ਪ੍ਰਗਟਾਵੇ ਦੀ ਇਜਾਜ਼ਤ ਹੈਕਿਰਤੀ ਵਰਤੋਂ ਕਰਕੇ ਹਰੇਕ in ਪ੍ਰਗਟਾਵੇ ਨੂੰ ਵੰਡੋ:

for $x in (10,20), $y in (100,200)
return <test>x={$x} ਅਤੇ y={$y}</test>

ਨਤੀਜਾਃ

<test>x=10 ਅਤੇ y=100</test>
<test>x=10 ਅਤੇ y=200</test>
<test>x=20 ਅਤੇ y=100</test>
<test>x=20 ਅਤੇ y=200</test>

let ਸਟੇਟਮੈਂਟ

let ਸਟੇਟਮੈਂਟ ਨੂੰ ਵੈਰੀਅਬਲ ਵਿਭਾਜਨ ਕਰਨ ਵਿੱਚ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਬਾਰ-ਬਾਰ ਇੱਕ ਸਮਾਨ ਪ੍ਰਗਟਾਵਾ ਨੂੰ ਬਾਰ-ਬਾਰ ਦੁਹਰਾਉਣ ਤੋਂ ਬਚਾਉਂਦਾ ਹੈ।let ਸਟੇਟਮੈਂਟ ਨੂੰ ਸਿਰਫ਼ ਵੈਰੀਅਬਲ ਵਿਭਾਜਨ ਦੇ ਵਿੱਚ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।

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

ਨਤੀਜਾਃ

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

where ਸਟੇਟਮੈਂਟ

where ਸਟੇਟਮੈਂਟ ਨੂੰ ਨਤੀਜਾਵਾਂ ਨੂੰ ਇੱਕ ਜਾਂ ਕਈ ਸਿਧਾਂਤਾਂ (criteria) ਦੇ ਰੂਪ 'ਚ ਨਿਰਧਾਰਿਤ ਕਰਦਾ ਹੈ।

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>