XQuery ਚੋਣ ਅਤੇ ਫਿਲਟਰਿੰਗ
- ਪਿਛਲਾ ਪੰਨਾ XQuery ਜੋੜਨਾ
- ਅਗਲਾ ਪੰਨਾ XQuery ਫੰਕਸ਼ਨ
XML ਉਦਾਹਰਣ ਦਸਤਾਵੇਜ਼
ਅਸੀਂ ਹੇਠਲੇ ਉਦਾਹਰਣ ਵਿੱਚ ਇਸ "books.xml" ਦਸਤਾਵੇਜ਼ ਦਾ ਉਪਯੋਗ ਕਰਦੇ ਰਹਾਂਗੇ (ਅਤੇ ਉੱਪਰੋਕਤ ਚਿੱਤਰ ਵਿੱਚ ਵਰਤੇ ਗਏ 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>
- ਪਿਛਲਾ ਪੰਨਾ XQuery ਜੋੜਨਾ
- ਅਗਲਾ ਪੰਨਾ XQuery ਫੰਕਸ਼ਨ