ایکس پی گرامر

XPath ਪਥ ਐਕਸਪ੍ਰੈਸ਼ਨ ਦੀ ਮਦਦ ਨਾਲ XML ਡੌਕੂਮੈਂਟ ਵਿੱਚ ਨੋਡਾਂ ਜਾਂ ਨੋਡ ਸੈਕਟ ਚੁਣਦਾ ਹੈ। ਨੋਡ ਪਥ (path) ਜਾਂ ਕਦਮ (steps) ਰਾਹੀਂ ਚੁਣੇ ਜਾਂਦੇ ਹਨ。

XML ਇੰਸਟੈਂਸ ਡੌਕੂਮੈਂਟ

ਅਸੀਂ ਹੇਠ ਦੇ ਉਦਾਹਰਣ ਵਿੱਚ ਇਸ XML ਡੌਕੂਮੈਂਟ ਦਾ ਇਸਤੇਮਾਲ ਕਰਾਂਗੇ。

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>
<book>
  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>
</bookstore>

ਨੋਡ ਚੋਣ ਕਰੋ

XPath ਮੁਹਾਵਰਾ ਐਕਸਮਲ ਡੌਕੂਮੈਂਟ ਵਿੱਚ ਨੋਡਾਂ ਦੀ ਚੋਣ ਕਰਦਾ ਹੈ। ਨੋਡ ਪਥ ਜਾਂ step ਰਾਹੀਂ ਚੁਣੇ ਜਾਂਦੇ ਹਨ。

ਹੇਠ ਦੇ ਪਥ ਵਿੱਚ, ਸਭ ਤੋਂ ਵਧੇਰੇ ਉਪਯੋਗੀ ਪਥ ਦੱਸੇ ਗਏ ਹਨ:

ਪ੍ਰਗਟਾਵਾ شرح
nodename ਇਸ ਨੋਡ ਦੇ ਸਾਰੇ ਸ਼ਾਖਾ ਚੁਣੋ。
/ ਰੂਟ ਨੋਡ ਚੁਣੋ。
// ਮੌਜੂਦਾ ਚੁਣੇ ਨੋਡ ਤੋਂ ਦੋਸਤੀ ਨੋਡ ਚੁਣੋ, ਬੇਕਾਰ ਉਨ੍ਹਾਂ ਦੇ ਸਥਾਨ ਨੂੰ ਧਿਆਨ ਨਾ ਦੇਂ。
. ਮੌਜੂਦਾ ਨੋਡ ਚੁਣੋ。
.. ਮੌਜੂਦਾ ਨੋਡ ਦੇ ਪਿੱਛਲੇ ਨੋਡ ਚੁਣੋ。
@ ਪ੍ਰਤੀਭਾਵ ਚੁਣੋ。

مثال

ਹੇਠ ਦੇ ਤੇਲਵਾਰ ਵਿੱਚ, ਅਸੀਂ ਕੁਝ ਪਥ ਅਤੇ ਉਨ੍ਹਾਂ ਦੇ ਨਤੀਜੇ ਦੱਸੇ ਹਨ:

پتھ ایکسپریشن نتائج
bookstore bookstore ਐਲੀਮੈਂਟ ਦੇ ਸਾਰੇ ਪ੍ਰਵਾਨ ਸ਼ਾਖਾ ਚੁਣੋ。
/bookstore

ਬੁੱਕਸਟੋਰ ਰੂਟ ਐਲੀਮੈਂਟ ਚੁਣੋ。

ਟਿੱਪਣੀ: ਜੇਕਰ ਪਥ ਵਿੱਚ ਨਾਲ ਖੁੱਲ੍ਹਦਾ ਹੈ ( / ), ਤਾਂ ਇਹ ਪਥ ਹਮੇਸ਼ਾ ਕਿਸੇ ਐਲੀਮੈਂਟ ਤੱਕ ਦਾ ਅਬਸੋਲਿਊਟ ਪਥ ਹੁੰਦਾ ਹੈ!

bookstore/book bookstore ਦੇ ਸਾਰੇ ਪ੍ਰਵਾਨ ਸ਼ਾਖਾ ਬੁੱਕ ਐਲੀਮੈਂਟ ਚੁਣੋ。
//book ਸਾਰੇ book ਸ਼ਾਖਾ ਚੁਣੋ, ਬੁੱਕਸਟੋਰ ਦੇ ਕਿਸੇ ਕਿਸਮ ਦੇ ਕਿਸਮ ਤੋਂ ਪਰੇ ਹੋ ਰਹੇ ਹਨ。
bookstore//book bookstore ਐਲੀਮੈਂਟ ਦੇ ਸਾਰੇ ਪ੍ਰਵਾਨ ਸ਼ਾਖਾ ਬੁੱਕ ਐਲੀਮੈਂਟ ਚੁਣੋ, ਬੁੱਕਸਟੋਰ ਦੇ ਕਿਸੇ ਕਿਸਮ ਦੇ ਕਿਸਮ ਤੋਂ ਪਰੇ ਹੋ ਰਹੇ ਹਨ。
//@lang ਨਾਮ ਦਾ ਸਾਰੇ ਅਤੀਤ ਚੁਣੋ。

ਨਿਯੰਤਰਕ (Predicates)

ਨਿਯੰਤਰਕ ਇੱਕ ਵਿਸ਼ੇਸ਼ ਨੋਡ ਜਾਂ ਇੱਕ ਵਿਸ਼ੇਸ਼ ਮੁੱਲ ਵਾਲਾ ਨੋਡ ਲੱਭਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ。

ਨਿਯੰਤਰਕ ਦਾਬੇ ਬੈਂਕਿਓਂ ਵਿੱਚ ਪਾਇਆ ਜਾਂਦਾ ਹੈ。

مثال

ਹੇਠ ਦੇ ਤੇਲਵਾਰ ਵਿੱਚ, ਅਸੀਂ ਕੁਝ ਨਿਯੰਤਰਕ ਪਥ ਅਤੇ ਉਨ੍ਹਾਂ ਦੇ ਨਤੀਜੇ ਦੱਸੇ ਹਨ:

پتھ ایکسپریشن نتائج
/bookstore/book[1] ਬੁੱਕਸਟੋਰ ਦੀ ਸਭ ਤੋਂ ਪਹਿਲੇ ਬੁਨਿਆਦੀ ਸ਼ਾਖਾ ਬੁੱਕ ਐਲੀਮੈਂਟ ਚੁਣੋ。
/bookstore/book[last()] ਬੁੱਕਸਟੋਰ ਦੀ ਸਭ ਤੋਂ ਪਿੰਡੀ ਬੁਨਿਆਦੀ ਸ਼ਾਖਾ ਬੁੱਕ ਐਲੀਮੈਂਟ ਚੁਣੋ。
/bookstore/book[last()-1] ਬੁੱਕਸਟੋਰ ਦੀ ਸਭ ਤੋਂ ਪਿੰਡੀ ਬੁਨਿਆਦੀ ਸ਼ਾਖਾ ਬੁੱਕ ਐਲੀਮੈਂਟ ਚੁਣੋ。
/bookstore/book[position()<3] ਬੁੱਕਸਟੋਰ ਐਲੀਮੈਂਟ ਦੇ ਸਭ ਤੋਂ ਪਹਿਲੇ ਦੋ ਬੁਨਿਆਦੀ ਸ਼ਾਖਾ ਬੁੱਕ ਐਲੀਮੈਂਟ ਚੁਣੋ。
//title[@lang] ਸਾਰੇ ਨਾਮ ਦਾ lang ਰੱਖਣ ਵਾਲੇ title ਐਲੀਮੈਂਟ ਚੁਣੋ。
//title[@lang='eng'] ਸਾਰੇ title ਐਲੀਮੈਂਟ ਚੁਣੋ, ਅਤੇ ਉਹ ਐਲੀਮੈਂਟ ਲੰਗ ਅਤੀਤ ਦਾ ਮੁੱਲ eng ਰੱਖਦੇ ਹਨ。
/bookstore/book[price>35.00] ਬੁੱਕਸਟੋਰ ਐਲੀਮੈਂਟ ਦੇ ਸਾਰੇ ਬੁੱਕ ਐਲੀਮੈਂਟ ਚੁਣੋ, ਅਤੇ ਉਸ ਵਿੱਚ ਪ੍ਰਾਈਸ ਐਲੀਮੈਂਟ ਦਾ ਮੁੱਲ 35.00 ਤੋਂ ਵੱਧ ਹੋਵੇ。
/bookstore/book[price>35.00]/title bookstore عناصر میں book عناصر کی تمام title عناصر کو انتخاب کریں، جس میں price عناصر کا رجحان 35.00 سے زیادہ ہو.

ناشناختی نود کو انتخاب کریں

ایکس پی گنوا کسی ناشناختی ایکس ایمل عناصر کو انتخاب کرسکتا ہے.

گنوا شرح
* کسی بوقفہ ویژن کا نود ماتختیار کرتا ہے.
@* کسی بوقفہ ویژن کا نود ماتختیار کرتا ہے.
نود() کسی بوقفہ نوع کا نود ماتختیار کرتا ہے.

مثال

درج کردہ جدول میں، ہم چند پتھ ایکسپریشن اور ان ایکسپریشنوں کے نتائج کو درج کردہ ہیں:

پتھ ایکسپریشن نتائج
/bookstore/* bookstore عناصر کی تمام ذیلی عناصر کو انتخاب کریں.
/* document میں تمام عناصر کو انتخاب کریں.
//title[@*] تمام ویژن کا حامل title عناصر کو انتخاب کریں.

متعدد پتھوں کو انتخاب کریں

پتھ ایکسپریشن میں ‘|’ آپریئیٹر کا استعمال کرکے متعدد پتھوں کو انتخاب کرسکتے ہیں.

مثال

درج کردہ جدول میں، ہم چند پتھ ایکسپریشن اور ان ایکسپریشنوں کے نتائج کو درج کردہ ہیں:

پتھ ایکسپریشن نتائج
//book/title | //book/price book عناصر کی تمام title اور price عناصر کو انتخاب کریں.
//title | //price document میں تمام title اور price عناصر کو انتخاب کریں.
/bookstore/book/title | //price کسی بوقفہ bookstore عناصر کی بوقفہ book عناصر کی تمام title عناصر کو انتخاب کریں، اور سارے document میں تمام price عناصر کو انتخاب کریں.