2009-09-24 11 views
9

मैं .NET 2.0 का उपयोग कर रहा हूं, और XmlDocument से को XmlDocument से नामस्थान की परवाह किए बिना, जैसा कि गलत हो सकता है।नेमस्पेस के बिना सिंगलिंग नोड

विशिष्ट

XmlElement slipType = (XmlElement)document.SelectSingleNode("//Provenance1"); 

शून्य पर के बाद से मैं जानता हूँ कि don'l वें नाम स्थान Provenance1 क्वेरी के समय में है slipType सेट हो जाएगा किया जाना है।

उत्तर

22

आप local-name तत्व की जांच कर सकते हैं और निम्नलिखित XPath अभिव्यक्ति के साथ नाम स्थान पर ध्यान न दें:।

//*[local-name()='Provenance1'] 
+0

माइक्रोसॉफ्ट से तथाकथित प्रोग्रामर द्वारा सबसे सरल चीजों को जटिल करने का एक और उदाहरण। – TomeeNS

0

प्रयास करें:

XmlElement slipType = (XmlElement)document.SelectSingleNode("//*:Provenance1"); 

या:

XmlElement slipType = (XmlElement)document.SelectSingleNode("//@*:Provenance1"); 
विशेषताओं के लिए

...

दुर्भाग्य से, इस निर्माण केवल XPath 2.0 के साथ, काम करेगा नेट का उपयोग करता है, जबकि केवल XPath 1.0। मैं गलती से एक 2.0 पार्सर के साथ कोड ऊपर का परीक्षण किया, तो यह काम नहीं करता है)

+0

यह एक फेंकता XPathException // *: प्रोवेन्सेंस 1 में एक अवैध टोकन है। –

+0

मैंने इसे .NET 3.5 के साथ परीक्षण किया है, जहां यह भी क्रैश हो गया है। हालांकि, यह एक वैध XPath निर्माण है। दुर्भाग्यवश XPath 2.0 के लिए, जिसे मैंने परीक्षण किया था। लेकिन .NET केवल XPath 1.0 का उपयोग करता है और यह असंभव है .NET 2.0 का समर्थन करेगा ... –

संबंधित मुद्दे