SelectSingleNode总是返回null?

以这个简化的XML示例为例:

  Invalid Login  

我试图使用SelectSingleNode方法选择’错误’节点,但是使用以下代码它总是返回NULL?

 XmlNode errorNode = oss.SelectSingleNode("/message/error"); if (errorNode != null) Console.Writeline("There is an error"); 

从研究我已经做到这与命名空间有关,但我根本无法得到任何工作。 任何建议?

您缺少SelectSingleNode调用中节点定义的XML命名空间。 假设oss是一个XmlDocument实例,您需要这样做:

 XmlNamespaceManager nsMgr = new XmlNamespaceManager(oss.NameTable); nsMgr.AddNamespace("ns", "http://www.mydomain.com/MyDataFeed"); XmlNode errorNode = oss.SelectSingleNode("/ns:message/ns:error", nsMgr);