SelectSingleNode总是返回null?
问题描述:
以我的XML的这个simplifed例如:SelectSingleNode总是返回null?
<?xml version="1.0"?>
<message xmlns="http://www.mydomain.com/MyDataFeed" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mydomain.com/MyDataFeed https://secure.mydomain/MyDataFeed/myDataFeed.xsd" requestId="13898" status="1">
<error>Invalid Login</error>
</message>
我尝试使用selectSingleNode方法选择“错误”的节点,但是使用下面的代码,它总是返回NULL?
XmlNode errorNode = oss.SelectSingleNode("/message/error");
if (errorNode != null)
Console.Writeline("There is an error");
从研究我做了这个与命名空间有关,但我根本无法得到任何工作。有什么建议?
答
您错过了SelectSingleNode
调用中由<message>
节点定义的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);
马克
当然的,但! XML格式有很多可以回答的问题。 – 2011-05-16 05:34:39