C# 当父节点具有XMLNS时,读取XML失败

C# 当父节点具有XMLNS时,读取XML失败,c#,asp.net,xml,xmldocument,C#,Asp.net,Xml,Xmldocument,我有一个读取xml信息的应用程序。 它工作正常,但当父节点中添加了XMLNS时,它停止工作并开始抛出Null引用异常 对此,可能的解决方案是什么 XML文件 <Info xmlns="urn:smilu.com"> <Number>123456</Number> <Gender>2</Gender> <NamesEng> <First>FirstName</First>

我有一个读取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>
如果我从Info节点中删除xmlns,上述代码将非常有效。但是,添加了xmlns后,我看到了一个例外。
请在这方面帮助我。

您正在声明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;

我试过了,但没有成功。我解决了这个问题。XmlNamespaceManager nsMgr=新的XmlNamespaceManager(xdoc.NameTable);并在所有代码中保留ns:作为前缀
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;