खोज…


टिप्पणियों

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


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow