इसी तरह का सवाल है, लेकिन ऐसा लगता है कि समाधान मेरे मामले में कारगर नहीं हुआ : एक्सडजस्टमेंट, एक्सपीथ और नेमस्पेस के साथ अजीबता
यहाँ XML के साथ मैं काम कर रहा हूँ:
<?xml version="1.0" encoding="utf-8"?>
<Report Id="ID1" Type="Demo Report" Created="2011-01-01T01:01:01+11:00" Culture="en" xmlns="http://demo.com/2011/demo-schema">
<ReportInfo>
<Name>Demo Report</Name>
<CreatedBy>Unit Test</CreatedBy>
</ReportInfo>
</Report>
और नीचे कोड है कि मुझे लगा कि यह काम करना चाहिए, लेकिन यह नहीं था ...
XDocument xdoc = XDocument.Load(@"C:\SampleXML.xml");
XmlNamespaceManager xnm = new XmlNamespaceManager(new NameTable());
xnm.AddNamespace(String.Empty, "http://demo.com/2011/demo-schema");
Console.WriteLine(xdoc.XPathSelectElement("/Report/ReportInfo/Name", xnm) == null);
क्या किसी के पास कोई विचार है? धन्यवाद।
1
नीचे दिए गए अन्य उत्तर को देखें, यह काम नहीं करता क्योंकि XPath 1.0 कार्यान्वयन एक खाली उपसर्ग के साथ सामना नहीं कर सकता
—
पॉल हैचर
जैसा कि अन्य ने यहां कहा है, [XmlNamespaceManager] में एक Namespace जोड़ते समय एक खाली उपसर्ग का उपयोग न करें। मैं सिर्फ इस टिप्पणी को जोड़ रहा हूं कि कोई भी एक दस्तावेज के साथ एक छोटा कोड उदाहरण देखना चाहता है जिसमें कई [xmlns] विशेषताएँ हैं, जो एक प्रत्यय के साथ और उसके बिना हैं। यहां देखें: stackoverflow.com/a/38272604/5838538
—
जेलगैब