ایکس پی اچ گرامر

XPath ਪਾਥ ਰਾਹੀਂ XML ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਨੋਡ ਜਾਂ ਨੋਡ ਸੈੱਟ ਚੋਣ ਕਰਦਾ ਹੈ। ਨੋਡ ਪਾਥ ਜਾਂ step ਰਾਹੀਂ ਚੋਣ ਕੀਤੇ ਜਾਂਦੇ ਹਨ。

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 ਐਕਸਪ੍ਰੈਸ਼ਨ ਪਾਥ ਰਾਹੀਂ XML ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਨੋਡ ਚੋਣ ਕਰਦਾ ਹੈ। ਨੋਡ ਪਾਥ ਜਾਂ step ਰਾਹੀਂ ਚੋਣ ਕੀਤੇ ਜਾਂਦੇ ਹਨ。

ਹੇਠ ਦੇ ਤੇਲਬੀਹ ਵਿੱਚ ਸਭ ਤੋਂ ਵਧੇਰੇ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਪਾਥ ਐਕਸਪ੍ਰੈਸ਼ਨਾਂ ਦੱਸੇ ਹਨ:

ਐਕਸਪ੍ਰੈਸ਼ਨ ਵਰਣਨ
nodename ਇਸ ਨੋਡ ਦੇ ਸਾਰੇ ਉਪ-ਨੋਡ ਚੋਣ ਕਰੋ。
/ ਜੂਥ ਨੋਡ ਤੋਂ ਚੋਣ ਕਰੋ。
// ਮੌਜੂਦਾ ਚੋਣ ਦੇ ਨੋਡ ਤੋਂ ਦੋਸ਼ਣ ਕੀਤੇ ਹੋਏ ਨੋਡ ਚੋਣ ਕਰੋ, ਬੇਕਾਰ ਉਹਨਾਂ ਦਾ ਸਥਾਨ ਦੋਸ਼ਣ ਕਰੋ。
. ਮੌਜੂਦਾ ਨੋਡ ਚੋਣ ਕਰੋ。
.. ਮੌਜੂਦਾ ਨੋਡ ਦੇ ਮਾਪੇ ਨੋਡ ਚੋਣ ਕਰੋ。
@ ਅਟਰੀਬਿਊਟ ਚੋਣ ਕਰੋ。

ਮਾਮਲਾ

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

ਪਥ ਪ੍ਰਗਟਾਵਾ ਨਤੀਜਾ
bookstore bookstore ਮੂਲੇਮੰਤਰ ਦੇ ਸਾਰੇ ਉਪ-ਨੋਡ ਚੋਣ ਕਰੋ。
/bookstore

ਜੂਥ ਮੂਲੇਮੰਤਰ bookstore ਚੋਣ ਕਰੋ。

ਟਿੱਪਣੀ: ਜੇਕਰ ਪਾਥ ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ ( / ), ਤਾਂ ਇਹ ਪਾਥ ਹਮੇਸ਼ਾ ਕਿਸੇ ਮੂਲੇਮੰਤਰ ਤੱਕ ਦਾ ਸਮਾਨ ਪਾਥ ਹੈ!

bookstore/book bookstore ਦੇ ਉਪ-ਮੂਲੇਮੰਤਰ ਦੇ ਸਾਰੇ book ਮੂਲੇਮੰਤਰ ਚੋਣ ਕਰੋ。
//book ਸਾਰੇ book ਉਪ-ਮੂਲੇਮੰਤਰ ਚੋਣ ਕਰੋ, ਬੇਕਾਰ ਉਹਨਾਂ ਦਾ ਸਥਾਨ ਦੋਸ਼ਣ ਕਰੋ。
bookstore//book ਚੋਣ ਕਰੋ bookstore ਮੂਲੇਮੰਤਰ ਦੇ ਪਿੱਛੇ ਸਾਰੇ book ਮੂਲੇਮੰਤਰ, ਬੇਕਾਰ ਉਹਨਾਂ ਕਿਸੇ ਸਥਾਨ 'ਤੇ bookstore ਦੇ ਨੇੜੇ ਹੋਣ ਨਾਲ ਵੀ。
//@lang ਨਾਮ lang ਵਾਲੇ ਸਾਰੇ ਅਟਰੀਬਿਊਟ ਚੁਣੋ。

ਪ੍ਰਗਟਾਵਾ (Predicates)

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

ਪ੍ਰਗਟਾਵਾ ਪੈਂਡਲੇਬਲ ਵਿੱਚ ਨਿਵਾਸਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ。

ਮਾਮਲਾ

ਹੇਠ ਦੇ ਸਾਰੇ ਤੇਲੀਕਰਣ ਵਿੱਚ ਅਸੀਂ ਕੁਝ ਪ੍ਰਗਟਾਵਿਆਂ ਦੇ ਨਾਮ ਅਤੇ ਇਨ੍ਹਾਂ ਪ੍ਰਗਟਾਵਿਆਂ ਦੇ ਨਤੀਜੇ ਦਿੱਤੇ ਹਨ:

ਪਥ ਪ੍ਰਗਟਾਵਾ ਨਤੀਜਾ
/bookstore/book[1] bookstore ਐਲੀਮੈਂਟ ਦੇ ਸਬ-ਐਲੀਮੈਂਟ ਵਿੱਚ ਪਹਿਲੇ ਸਥਾਨਾਂ ਦੇ book ਐਲੀਮੈਂਟ ਚੁਣੋ。
/bookstore/book[last()] bookstore ਐਲੀਮੈਂਟ ਦੇ ਸਬ-ਐਲੀਮੈਂਟ ਵਿੱਚ ਆਖਰੀ ਸਥਾਨਾਂ ਦੇ book ਐਲੀਮੈਂਟ ਚੁਣੋ。
/bookstore/book[last()-1] bookstore ਐਲੀਮੈਂਟ ਦੇ ਸਬ-ਐਲੀਮੈਂਟ ਵਿੱਚ ਛੇਵੇਂ ਸਥਾਨਾਂ ਦੇ book ਐਲੀਮੈਂਟ ਚੁਣੋ。
/bookstore/book[position()<3] bookstore ਐਲੀਮੈਂਟ ਦੇ ਸਬ-ਐਲੀਮੈਂਟ ਵਿੱਚ ਪਹਿਲੇ ਦੋ ਸਥਾਨਾਂ ਦੇ book ਐਲੀਮੈਂਟ ਚੁਣੋ。
//title[@lang] ਸਾਰੇ lang ਨਾਮ ਵਾਲੇ ਅਟਰੀਬਿਊਟ ਵਾਲੇ title ਐਲੀਮੈਂਟ ਚੁਣੋ。
//title[@lang='eng'] ਸਾਰੇ title ਐਲੀਮੈਂਟ ਚੁਣੋ ਜਿਨ੍ਹਾਂ ਦੇ lang ਅਟਰੀਬਿਊਟ ਦਾ ਮੁੱਲ eng ਹੈ。
/bookstore/book[price>35.00] bookstore ਐਲੀਮੈਂਟ ਵਿੱਚ ਸਾਰੇ book ਐਲੀਮੈਂਟ ਚੁਣੋ ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਪ੍ਰਿਸੀਜ਼ ਐਲੀਮੈਂਟ ਦਾ ਮੁੱਲ 35.00 ਤੋਂ ਵੱਧ ਹੈ。
/bookstore/book[price>35.00]/title bookstore ਐਲੀਮੈਂਟ ਵਿੱਚ ਬੁੱਕ ਐਲੀਮੈਂਟ ਦੇ ਸਾਰੇ title ਐਲੀਮੈਂਟ ਚੁਣੋ ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਪ੍ਰਿਸੀਜ਼ ਐਲੀਮੈਂਟ ਦਾ ਮੁੱਲ 35.00 ਤੋਂ ਵੱਧ ਹੈ。

ਅਣਪਛਾਤੇ ਨੋਡ ਚੁਣੋ

XPath ਵਿਸ਼ੇਸ਼ਕਰਣ ਨੂੰ ਅਣਪਛਾਤੇ XML ਐਲੀਮੈਂਟ ਚੁਣਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ。

ਵਿਸ਼ੇਸ਼ਕਰਣ ਵਰਣਨ
* ਕਿਸੇ ਵੀ ਐਲੀਮੈਂਟ ਨੋਡ ਨੂੰ ਮੈਚ ਕਰੋ。
@* ਕਿਸੇ ਵੀ ਅਟਰੀਬਿਊਟ ਨੋਡ ਨੂੰ ਮੈਚ ਕਰੋ。
node() ਕਿਸੇ ਵੀ ਪ੍ਰਕਾਰ ਦੇ ਨੋਡ ਨੂੰ ਮੈਚ ਕਰੋ。

ਮਾਮਲਾ

ਹੇਠ ਦੇ ਸਾਰੇ ਸਾਰੇ ਤੇਲੀਕਰਣ ਵਿੱਚ ਅਸੀਂ ਕੁਝ ਪਥ ਪ੍ਰਗਟਾਵੇਂ ਅਤੇ ਇਨ੍ਹਾਂ ਪ੍ਰਗਟਾਵਿਆਂ ਦੇ ਨਤੀਜੇ ਦਿੱਤੇ ਹਨ:

ਪਥ ਪ੍ਰਗਟਾਵਾ ਨਤੀਜਾ
/bookstore/* bookstore ਐਲੀਮੈਂਟ ਦੇ ਸਾਰੇ ਸਬ-ਐਲੀਮੈਂਟ ਚੁਣੋ。
//* ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਸਾਰੇ ਐਲੀਮੈਂਟ ਚੁਣੋ。
//title[@*] ਸਾਰੇ ਪ੍ਰਕਾਰ ਦੇ title ਐਲੀਮੈਂਟ ਚੁਣੋ ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਸਾਰੇ ਅਟਰੀਬਿਊਟ ਹਨ。

ਕਈ ਪਥਾਂ ਚੁਣੋ

ਪਥ ਪ੍ਰਗਟਾਵੇਂ ਵਿੱਚ "|" ਆਪਰੇਟਰ ਦੀ ਵਰਤੋਂ ਨਾਲ ਤੁਸੀਂ ਕਈ ਪਥਾਂ ਚੁਣ ਸਕਦੇ ਹੋ।

ਮਾਮਲਾ

ਹੇਠ ਦੇ ਸਾਰੇ ਸਾਰੇ ਤੇਲੀਕਰਣ ਵਿੱਚ ਅਸੀਂ ਕੁਝ ਪਥ ਪ੍ਰਗਟਾਵੇਂ ਅਤੇ ਇਨ੍ਹਾਂ ਪ੍ਰਗਟਾਵਿਆਂ ਦੇ ਨਤੀਜੇ ਦਿੱਤੇ ਹਨ:

ਪਥ ਪ੍ਰਗਟਾਵਾ ਨਤੀਜਾ
//book/title | //book/price ਬੁੱਕ ਐਲੀਮੈਂਟ ਦੇ ਸਾਰੇ title ਅਤੇ price ਐਲੀਮੈਂਟ ਚੁਣੋ。
//title | //price 选取文档中的所有 title 和 price 元素。
/bookstore/book/title | //price 选取属于 bookstore 元素的 book 元素的所有 title 元素,以及文档中所有的 price 元素。