xpath
स्थान पथ और कुल्हाड़ियों
खोज…
टिप्पणियों
XPath स्थान पथ /
चरित्र द्वारा अलग किए गए स्थान चरणों की एक श्रृंखला है:
step1/step2/step3
एक स्थान चरण में एक अक्ष , एक नोड परीक्षण और एक वैकल्पिक सूची की भविष्यवाणी होती है । अक्ष और नोड परीक्षण को दो बृहदान्त्र वर्णों द्वारा अलग किया जाता है ::
। विधेय वर्ग वर्ग में संलग्न हैं:
axis::nodeTest[predicate1][predicate2]
स्थान पथ का मूल्यांकन एक नोड सेट से शुरू होता है जिसमें अभिव्यक्ति के संदर्भ, या रूट नोड द्वारा दिए गए संदर्भ नोड होता है, यदि स्थान पथ a /
शुरू होता है। प्रत्येक चरण में, मूल नोड सेट में प्रत्येक नोड एन को नोड्स के सेट से बदल दिया जाता है
- दिए गए अक्ष के बाद N से पहुंचा जा सकता है ,
- नोड परीक्षण से मेल खाता है, और
- सभी विधेय से मेल खाता है ।
स्थान पथ अभिव्यक्ति का परिणाम सभी स्थान चरणों को संसाधित करने के बाद प्राप्त अंतिम नोड सेट है।
बाल तत्वों का पता लगाना
child
अक्ष का उपयोग करके मूल नोड से एक वंशज तत्व तक ट्रैवर्सिंग:
/child::html/child::body/child::div/child::span
चूंकि child
एक्सिस डिफ़ॉल्ट अक्ष है, इसलिए इसे संक्षिप्त किया जा सकता है:
/html/body/div/span
सभी वंशों को पीछे छोड़ते हुए
descendant
और descendant-or-self
अक्षों का उपयोग किसी भी गहराई पर एक नोड के सभी वंशज तत्वों को खोजने के लिए किया जा सकता है। इसके विपरीत, child
अक्ष केवल तात्कालिक बच्चों का पता लगाता है।
/child::html/descendant::span
/child::html/descendant-or-self::*
डबल स्लैश //
/descendant-or-self::node()/
लिए एक शॉर्टकट है। तो निम्नलिखित भाव समतुल्य हैं:
table//td
child::table/descendant-or-self::node()/child::td
child::table/descendant::td
table/descendant::td
पूर्वजों का पता लगाना
parent
अक्ष में केवल नोड का जनक होता है। निम्नलिखित अभिव्यक्ति body
तत्व पर चक्कर लगाकर html
तत्व का चयन करती है:
/child::html/child::body/parent::html
..
parent::node()
लिए एक शॉर्टकट है parent::node()
ancestor
और ancestor-or-self
अक्ष एक नोड के सभी पूर्वजों को पीछे छोड़ते हैं। निम्नलिखित अभिव्यक्ति सभी रिटर्न div
तत्व इस संदर्भ नोड के पूर्वजों हैं:
ancestor::div
"स्व" अक्ष
self
एक्सिस में केवल संदर्भ नोड होता है। अभिव्यक्ति .
self::node()
लिए एक शॉर्टकट है self::node()
और हमेशा संदर्भ नोड से मेल खाता है। द .
शॉर्टकट संदर्भ नोड के वंशज की गणना के लिए उपयोगी है। निम्नलिखित अभिव्यक्तियाँ समतुल्य हैं:
.//span
self::node()/descendant-or-self::node()/child::span
descendant::span
self
अक्ष एक्सपीथ 1.0 की भविष्यवाणी में सहायक हो सकता है। उदाहरण के लिए, संदर्भ नोड के सभी h1
, h2
और h3
बच्चों का चयन करने के लिए:
*[self::h1 or self::h2 or self::h3]
अनुगामी और पूर्ववर्ती नोड्स का अनुरेखण
following-sibling
और preceding-sibling
कुल्हाड़ियों में संदर्भ नोड से पहले या बाद में preceding-sibling
होते हैं, और following
और preceding
कुल्हाड़ियों में दस्तावेज़ के सभी नोड्स संदर्भ नोड से पहले या बाद में होते हैं:
- इनमें से किसी भी अक्ष में विशेषता या नेमस्पेस नोड नहीं हैं।
-
following
अक्ष में कोई वंशज नहीं है। -
preceding
अक्ष में कोई पूर्वज नहीं है।
उदाहरण:
following::span[1]
following-sibling::*[last()]
ट्रेवर्सिंग विशेषता और नेमस्पेस नोड्स
attribute
और namespace
कुल्हाड़ियों में एक तत्व के सभी गुण और नामस्थान नोड होते हैं। शॉर्टकट @
attribute::
के लिए खड़ा है attribute::
, इसलिए निम्नलिखित समतुल्य हैं:
child::div/attribute::class
div/@class