2009-09-25 2 views
6

अगर मैं एक XmlElement पर SelectNodes कहते हैं, और इस जैसे XPath क्वेरी पारित करने के लिए स्कोप नहीं:SelectNodes तत्व

XmlNodeList नोड्स = xmlElement.SelectNodes ("// OtherNode");

नोड्स सूची दस्तावेज़ में अन्य सभी नोड तत्वों के लिए होगी न कि केवल xmlElement से।

मुझे याद है कि यह डिज़ाइन द्वारा है, और एक अच्छे कारण के लिए, लेकिन मुझे याद नहीं है कि यह अच्छा कारण क्या था, न ही इसके आसपास कैसे जाना है।

उत्तर

10

xpath की शुरुआत में बस dot जोड़ें। `/ Foo/bar` एक निरपेक्ष पथ, जहां प्रमुख`/`का मतलब है" रूट से शुरू -

XmlNodeList nodes = xmlElement.SelectNodes(".//OtherNode"); 
+1

का एक सरल व्याख्या "क्यों" यह फ़ाइल पथ के साथ की तरह है कि है: dot वर्तमान नोड का चयन करता है "; 'foo/bar' एक सापेक्ष फ़ाइल पथ है, जिसे'।/foo/bar' भी लिखा जा सकता है। इसी तरह XPath के साथ, और वहां यह '/' और '//' दोनों पर लागू होता है - इसलिए अग्रणी '/ 'हमेशा का अर्थ है" पेड़ में रूट नोड से प्रारंभ करें जिसमें वर्तमान संदर्भ नोड संबंधित है "। –

+2

क्यों न सिर्फ "अन्य नोड"? – Joren

+3

क्योंकि वह सभी वंशजों पर विचार करना चाहता है, न केवल तत्काल बच्चों को? –