Benzer bir soru var, ancak benim durumumda çözüm işe yaramadı: XDocument, XPath ve ad alanlarındaki tuhaflık
İşte çalıştığım 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>
Ve aşağıda çalışması gerektiğini düşündüğüm kod var ama işe yaramadı ...
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);
Herhangi bir fikri olan var mı? Teşekkürler.
1
Aşağıdaki diğer yanıta bakın, XPath 1.0 uygulaması boş bir önekle baş edemediği için çalışmıyor
—
Paul Hatcher
Burada da belirtildiği gibi, [XmlNamespaceManager] 'a bir Ad Alanı eklerken boş bir önek kullanmayın. Bu yorumu, sonek içeren ve içermeyen birkaç [xmlns] özniteliği olan bir belgeye sahip küçük bir kod örneği görmek istemesi durumunda ekliyorum. Buraya bakın: stackoverflow.com/a/38272604/5838538
—
Jelgab