एक्सपैथ व्याकरण

XPath XML दस्तावेज़ में नोड या नोड सेट को चुनने के लिए पथ एक्सप्रेशन का उपयोग करता है। नोड उपर या path (path) या step (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 XML दस्तावेज़ में नोड को चुनने के लिए उपयोग करता है। नोड उपर या step के माध्यम से चुने जाते हैं।

नीचे सबसे अधिक उपयोगी पथ एक्सप्रेशनों को दिया गया है:

एक्सप्रेशन वर्णन
nodename इस नोड के सभी सब-नोड को चुनें।
/ रूट नोड को चुनें।
// मिलान करे वाले वर्तमान नोड के दस्तावेज़ में किसी नोड को चुनें, बिना उनके स्थान का ध्यान रखे।
. वर्तमान नोड को चुनें।
.. वर्तमान नोड के पिता नोड को चुनें।
@ अट्रिब्यूट को चुनें।

उदाहरण

नीचे दिए गए तालिका में, हमने कुछ पथ एक्सप्रेशन और उनके परिणामों को सूचीबद्ध किया है:

पथ एक्सप्रेशन परिणाम
bookstore bookstore एलीमेंट के सभी सब-नोड को चुनें।
/bookstore

शीर्ष एलीमेंट bookstore को चुनें।

टिप्पणी: अगर पथ उच्चसे ( / ) से शुरू होता है, तो इस पथ सदैव किसी एलीमेंट तक के निर्देशक पथ को प्रतिनिधित्व करता है!

bookstore/book बुकस्टोर के सब-एलीमेंट के सभी बुक एलीमेंटों को चुनें।
//book दस्तावेज़ में कहीं भी स्थित सभी बुक सब-एलीमेंटों को चुनें।
bookstore//book बुकस्टोर एलीमेंट के परिवार के सभी बुक एलीमेंटों को चुनें, चाहे वे बुकस्टोर के नीचे कहीं भी हों।
//@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 एलीमेंट को चुनें जिनमें price एलीमेंट का मूल्य 35.00 से अधिक है।
/bookstore/book[price>35.00]/title bookstore एलीमेंट में book एलीमेंट के सभी title एलीमेंट को चुनें जिनमें price एलीमेंट का मूल्य 35.00 से अधिक है।

अज्ञात नोड को चुनें

XPath विकल्प को अज्ञात XML एलीमेंट को चुनने के लिए उपयोग किया जा सकता है।

विकल्प वर्णन
* किसी भी एलीमेंट नोड को मेल खाना
@* किसी भी अभियात्मक नोड को मेल खाना
node() किसी भी प्रकार के नोड को मेल खाना

उदाहरण

नीचे दिए गए तालिका में हमने कुछ पथ एक्सप्रेशन्स और उनके परिणाम को सूचीबद्ध किया है:

पथ एक्सप्रेशन परिणाम
/bookstore/* bookstore एलीमेंट के सभी सह-एलीमेंट को चुनें।
//*[@] दस्तावेज़ में सभी एलीमेंट को चुनें।
//title[@*] सभी अभियात्मक title एलीमेंट को चुनें।

कई पथ चुनें

पथ एक्सप्रेशन में '||' ऑपरेटर का उपयोग करके आप कई पथ चुन सकते हैं।

उदाहरण

नीचे दिए गए तालिका में हमने कुछ पथ एक्सप्रेशन्स और उनके परिणाम को सूचीबद्ध किया है:

पथ एक्सप्रेशन परिणाम
//book/title | //book/price book एलीमेंट के सभी title और price एलीमेंट को चुनें।
//title | //price दस्तावेज़ में सभी title और price तत्व को चुनें
/bookstore/book/title | //price bookstore एलीमेंट के तत्व के सभी title तत्व को और दस्तावेज़ में सभी price तत्व को चुनें