我有一个应用程序,我在其中读取xml信息。 它工作正常,但是当我的父节点添加了一个XMLNS时,它会停止工作并开始抛出Null引用异常。
这个
的可能解决方案应该是什么XML文件
<Info xmlns="urn:smilu.com">
<Number>123456</Number>
<Gender>2</Gender>
<NamesEng>
<First>FirstName</First>
<Second>SecondName</Second>
<Third>ThirdName</Third>
<Fourth>FourthName</Fourth>
<Fifth>FifthName</Fifth>
<Sixth>SixthName</Sixth>
</NamesEng>
</Info>
我的C#代码用于阅读
NameTable nt = new NameTable();
XmlNamespaceManager nsMgr = new XmlNamespaceManager(nt);
nsMgr.AddNamespace("ns", "urn:smilu.com");
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(_LabourXMLInfo);
string Number = xdoc.DocumentElement.SelectSingleNode("Number", nsMgr).InnerText;
如果我从Info节点中删除 xmlns ,上面的代码就可以正常工作。但是,添加了xmlns,显示异常。 请帮助我。
答案 0 :(得分:0)
您正在声明XML命名空间 - 但您实际上并非使用(指代它)。
将您的代码更改为:
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(_LabourXMLInfo);
// define XML namespace manager based on the XmlDocument's NameTable
XmlNamespaceManager nsMgr = new XmlNamespaceManager(xdoc.NameTable);
nsMgr.AddNamespace("ns", "urn:smilu.com");
// add a "ns:" prefix to the XPath expression here!
string Number = xdoc.DocumentElement.SelectSingleNode("ns:Number", nsMgr).InnerText;