एक्सपैथ ग्रामाटिक

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

नीचे दिए गए पथ अभिव्यक्तियों को सूचीबद्ध किया गया है:

अभिव्यक्ति वर्णन
nodename इस नोड के सभी चयनक बच्चे चुनें。
/ रूट नोड से चयनक करें。
// वर्तमान चयनक नोड से डॉक्यूमेंट में नोड चुनें, बगैर उनके स्थान के बारे में ध्यान देने के बगैर。
. वर्तमान नोड चुनें。
.. वर्तमान नोड के पिता नोड चुनें。
@ एट्रिब्यूट चुनें。

इंस्टेंस

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

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

बुकस्टोर रूट एलीमेंट चुनें。

टिप्पणी: यदि पथ प्रथम बिंदु ( / ) से शुरू होता है, तो इस पथ को हमेशा एक विशेष एलीमेंट के लिए अभिलेखक पथ के रूप में माना जाता है!

bookstore/book bookstore के सभी चयनक बच्चे के book एलीमेंट चुनें。
//book सभी book चयनक चुनें, बगैर डॉक्यूमेंट में उनके स्थान के बारे में ध्यान देने के बगैर。
bookstore//book bookstore एलीमेंट के सभी पीछे वंशज book एलीमेंट चुनें, बुकस्टोर के नीचे किसी भी स्थान पर होने वाले बगैर。
//@lang lang नाम के सभी एट्रिब्यूट चुनें。

वाक्यांतरण (Predicates)

वाक्यांतरण का उपयोग किया जाता है ताकि किसी विशेष नोड को या किसी विशिष्ट मान वाले नोड को खोजा जा सके。

वाक्यांतरण चूड़े चौकीदारों में घुसा हुआ है。

इंस्टेंस

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

पथ एक्सप्रेशन परिणाम
/bookstore/book[1] बुकस्टोर बच्चे एलीमेंट के पहले बच्चे के book एलीमेंट चुनें。
/bookstore/book[last()] बुकस्टोर बच्चे एलीमेंट के अंतिम बच्चे के book एलीमेंट चुनें。
/bookstore/book[last()-1] बुकस्टोर बच्चे एलीमेंट के अंतिम दो बच्चे में से दूसरा book एलीमेंट चुनें。
/bookstore/book[position()<3] बुकस्टोर एलीमेंट के सबसे पहले दो बच्चे एलीमेंट के book एलीमेंट चुनें。
//title[@lang] सभी lang नाम के एट्रिब्यूट वाले title एलीमेंट चुनें。
//title[@lang='eng'] सभी title एलीमेंट चुनें, जिनका lang एट्रिब्यूट का मान eng है。
/bookstore/book[price>35.00] बुकस्टोर एलीमेंट के सभी book एलीमेंट चुनें, और उनमें price एलीमेंट का मान 35.00 से बड़ा होना चाहिए。
/bookstore/book[price>35.00]/title bookstore एलीमेंट में book एलीमेंट के सभी title एलीमेंट को चुनें, जिनमें price एलीमेंट का मूल्य 35.00 से अधिक है

अज्ञात नोड चुनना

एक्सपैथ जनरलाइजर को अज्ञात एक्सएमएल एलीमेंट को चुनने के लिए इस्तेमाल किया जाता है

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

इंस्टेंस

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

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

कई पथ चुनना

पथ एक्सप्रेशन में 'डबल्यू' ऑपरेटर का उपयोग करके, आप कई पथों को चुन सकते हैं。

इंस्टेंस

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

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