XPath कुछ विशेषता मान के साथ एक नोड का चयन कुछ अन्य नोड के विशेषता मान के बराबर है [बंद]


87
<grand id="grand">
  <parent>
    <child age="18" id="#not-grand"/>
    <child age="20" id="#grand"/> <!-- This is what I want to locate -->
  </parent>
</grand>

क्या कोई मुझे बता सकता है कि दूसरे बच्चे का पता लगाने के लिए कैसे व्यक्त किया जाए?

यह काम नहीं करता है ...

"/grand/parent/child[@id=concat('#',/grand/@id)]/@age"

धन्यवाद।


मुझे माफ कर दो। अभिव्यक्ति ठीक है। मैंने पाया कि मुझे अभिव्यक्ति नहीं बल्कि अन्य क्षेत्र में कुछ समस्याएं मिलीं।


3
आपका xpath मेरे लिए ठीक काम करता है।
dogbane

3
मेरे लिए भी - बस इसे यहाँ परीक्षण किया गया है और यह दूसरे बाल तत्व का चयन करता है।
एंड्रियास डॉक

2
ठीक है ... अभिव्यक्ति ठीक है। मुझे माफ कर दो। मैंने अभिव्यक्ति (नाम स्थान उपसर्ग) और उदाहरण दस्तावेज़ में कुछ गलतियाँ की हैं। धन्यवाद।
जिन क्वोन

जवाबों:


95

यह XPath आपके द्वारा प्रदान किए गए कोड स्निपेट के लिए विशिष्ट है। <child>आईडी के साथ चयन करने के लिए जैसा कि #grandआप लिख सकते हैं //child[@id='#grand']

उम्र पाने के लिए //child[@id='#grand']/@age

उम्मीद है की यह मदद करेगा


1
धन्यवाद वामन। यह मदद करता है। मेरा मतलब था एक समय के मूल्यांकन के लिए अभिव्यक्ति ('/ भव्य / @ आईडी') का मूल्य नहीं ('# भव्य') जिसका पहले मूल्यांकन किया जाना चाहिए।
जिन क्वोन

क्या होगा यदि मेरे XML में नाम विशेषता के साथ अनुभाग की सूची है, तो उपडॉटसोर्स के रूप में चयन कैसे करें? उदाहरण: <section name="valuation"> <capital-value> some data </capital-value> <location> some data </location> </section> <section name="subject-property"> <address>72 Gordon Avenue</address> <postcode>HA7 3QS</postcode> <bedrooms>2</bedrooms> </section>
संजय सहानी

30

मुझे लगता है कि आप यही चाहते हैं:

/grand/parent/child[@id="#grand"]

2
धन्यवाद मार्कोस। मेरा मतलब था एक समय के मूल्यांकन के लिए अभिव्यक्ति ('/ भव्य / @ आईडी') का मूल्य नहीं ('# भव्य') जिसका पहले मूल्यांकन किया जाना चाहिए।
जिन क्वोन

2
@ jin-kwon: मैं देख रहा हूं। तो, आप XPath बस ठीक है।
मार्कोस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.