में पहला परिणाम का चयन करें मैं इस सवाल को देखा है: Select first instance only with XPath?XPath
लेकिन अगर मैं एक नोड-सेट इस तरह है:
<container value="">
<data id="1"></data>
<data id="2">test</data>
<container>
<data id="1">test</data>
<data id="3">test</data>
</container>
</container>
अब मेरी परिदृश्य है इस नोड सेट गहरा है कि एक दस्तावेज़ के अंदर, और मेरे पास आंतरिक कंटेनर के लिए एक सूचक है। इसलिए मुझे अपने XPath को "/ कंटेनर/कंटेनर" के साथ उपसर्ग करना है (पथ वास्तव में लंबा है, लेकिन इस उदाहरण के लिए यह करना चाहिए)।
संपादित करें: जो मैं चाहता हूं वह 1 की आईडी के साथ "डेटा" नोड है, जो सबसे कम नोड पहले या निकटतम पूर्वजों से आना चाहिए। इसलिए, अगर मैं इसे "वर्तमान" (/ कंटेनर/कंटेनर) पर नहीं ढूंढ पा रहा हूं तो मुझे पूर्वजों को देखना चाहिए और निकटतम एक प्राप्त करना चाहिए (या अंत में, कुछ भी नहीं मिला)। मैं इस की कोशिश की है:
/कंटेनर/कंटेनर/पूर्वज या स्वयं :: कंटेनर/डेटा [@ id = "1"]
कौन सा वापस एक परिणाम के दो नोड्स के साथ सेट लाता है। मैंने सोचा कि मैं गहराई पाने के लिए आखिरी() का उपयोग कर सकता हूं, इसलिए मैंने अंत में इसका सामना किया, लेकिन इसका कोई फायदा नहीं हुआ।
विनिर्देश अधिक स्पष्टता के साथ कर सकता है। आप डेटा नोड चाहते हैं? डेटा नोड में 1 की आईडी होनी चाहिए? मूल कंटेनर को फॉर्म करें यदि डेटा नोड में 1 की आईडी नहीं है, तो आप दस्तावेज़ को मूल कंटेनर में ले जाना चाहते हैं ताकि यह देखने के लिए कि उसके पास डेटा आईडी नोड 1 है, यदि आईडी के साथ डेटा नोड तक नहीं चल रहा है 1 में पाया गया है। क्या यह इसका वर्णन करता है? – AnthonyWJones
मैंने वर्णन करने की कोशिश की कि मैं थोड़ा स्पष्ट क्यों खोज रहा था, हालांकि कुछ ने अनुमान लगाया था। माफ़ कीजिये! –