我正在尝试使用C#和System.XML解析以下XML文档:
<root xmlns:n="http://www.w3.org/TR/html4/">
<n:node>
<n:node>
data
</n:node>
</n:node>
<n:node>
<n:node>
data
</n:node>
</n:node>
</root>
每篇关于XPath和命名空间的论文都告诉我要做以下事情:
XmlNamespaceManager mgr = new XmlNamespaceManager(xmlDoc.NameTable);
mgr.AddNamespace("n", "http://www.w3.org/1999/XSL/Transform");
在我添加上述代码后,查询。
xmlDoc.SelectNodes("/root/n:node", mgr);
程序可以正常运行,但没有返回任何结果。以下是代码:
xmlDoc.SelectNodes("/root/node", mgr);
如果我修改XML文件并删除命名空间,它会返回两个节点,因此似乎其他所有设置都正确。有什么想法为什么使用命名空间时它不起作用?
非常感谢!