मेरे एक्सएमएल लगता है:SelectSingleNode में XPath का उपयोग करना: एक्सएमएल से अलग-अलग तत्व प्राप्त कर रहा है, अगर यह मौजूद है
<?xml version=\"1.0\"?>
<itemSet>
<Item>one</Item>
<Item>two</Item>
<Item>three</Item>
.....maybe more Items here.
</itemSet>
व्यक्ति आइटम में से कुछ या मौजूद नहीं हो सकता है। मान लें कि मैं तत्व <Item>
दो</Item>
यदि यह मौजूद है, तो पुनर्प्राप्त करना चाहता हूं। मैंने निम्नलिखित XPaths (सी # में) की कोशिश की है।
XMLNode node = myXMLdoc.SelectSingleNode("/itemSet[Item='two']")
--- तो आइटम दो मौजूद है, तो यह मुझे केवल पहला तत्व एक देता है। हो सकता है कि यह क्वेरी केवल आइटमसेट में पहले तत्व को इंगित करे, अगर उसके पास बच्चे के रूप में कहीं दो मूल्य का आइटम है। क्या यह व्याख्या सही है?
तो मैं करने की कोशिश की:
XMLNode node = myXMLdoc.SelectSingleNode("/itemSet[Item='two']/Item[1]")
--- मैं के रूप में इस क्वेरी पढ़ा है, मुझे वापसी itemSet के भीतर पहली<Item>
तत्व मूल्य होता है = 'दो'। क्या मैं सही हूँ?
यह अभी भी केवल पहले तत्व एक देता है। मैं क्या गलत कर रहा हूं? दोनों मामलों में, भाई बहनों का उपयोग करके मैं बच्चे नोड्स को पार कर सकता हूं और दो पर जा सकता हूं, लेकिन यह वह नहीं है जिसे मैं देख रहा हूं। इसके अलावा यदि दो अनुपस्थित हैं तो SelectSingleNode शून्य लौटाता है। इस प्रकार तथ्य यह है कि मुझे एक सफल रिटर्न नोड मिल रहा है, यह तत्व दो की मौजूदगी का संकेत देता है, इसलिए क्या मैं दो की चॉक उपस्थिति के लिए बूलियन परीक्षण चाहता था, उपर्युक्त XPaths में से कोई भी पर्याप्त होगा, लेकिन मुझे वास्तव में पूर्ण आवश्यकता है तत्व <Item>two</Item>
मेरे रिटर्न नोड के रूप में।
[मेरा पहला प्रश्न, और मेरा पहला समय वेब प्रोग्रामिंग के साथ काम कर रहा है, इसलिए मैंने अभी उपरोक्त XPaths और संबंधित xml सामान को फ्लाई पर अभी सीओ में पिछले प्रश्नों से सीखा है। तो नम्र रहो, और मुझे बताएं कि क्या मैं कोई समुदाय हूं या किसी भी समुदाय के नियमों को झुका रहा हूं। । धन्यवाद]
धन्यवाद जॉन एक टन। आपके दोनों समाधान एक आकर्षण की तरह काम करते थे। विषय पर रहते हुए, क्या मैं पूछ सकता हूं, टेक्स्ट() और। का उपयोग करने में क्या अंतर है? मेरे नमूना एक्सएमएल में यह केवल एक पाठ मान के साथ एक साधारण तत्व है, इसलिए दोनों समाधान एक ही चीज़ लौटते हैं। क्या कोई जटिल XML स्थिति है जहां किसी को दूसरे पर प्राथमिकता दी जाती है या परिणाम अलग होते हैं? (yr ans सही और मतदान करने के अलावा, क्या कुछ भी समुदाय है, मैं आपको धन्यवाद देने के लिए कर सकता हूं?) –
@areaMan: ईमानदार होने के लिए, मुझे "टेक्स्ट()" और " । "। मेरा XPath-fu काफी कम है :) आप अधिक जानने के लिए XPath चश्मा देखना चाहते हैं: http://www.w3.org/TR/xpath आप मुझे धन्यवाद देने के लिए क्या कर सकते हैं ... एक प्रश्न ढूंढें जिसका आप जवाब दे सकते हैं, और इसके साथ-साथ आप इसका जवाब भी दे सकते हैं। ओह, और अच्छे प्रश्न पूछते रहें :) –
कहा कि अंतर जानने के बारे में, मुझे * कुछ * अंतर के बारे में पता है। और पाठ() - संपादित करेंगे। –