【发布时间】:2018-10-28 10:49:54
【问题描述】:
我尝试评估简单的 xpath
"//pr:Name"
对于这个xml
<?xml version="1.0" encoding="utf-8"?>
<pr:Products xmlns:pr="http://www.example.com/">
<pr:Name>Coffee</pr:Name>
</pr:Products>
但我在运行时获得了 xml 文件,即我无法使用 AddNamespace() 方法填充 XmlNamespaceManager(这就是评估失败的原因)。我试着做这个把戏
XDocument xdoc;
XmlReader reader;
using (var stream = new FileStream("test.xml", FileMode.Open))
{
reader = new XmlTextReader(stream);
xdoc = XDocument.Load(reader);
}
var nsManager = new XmlNamespaceManager(reader.NameTable);
var xpath = "//pr:Name";
var xvalue = xdoc.XPathEvaluate(xpath, nsManager);
但这对我没有帮助。 您知道如何为 XPath 解析名称空间或以其他方式评估 XPath 吗? 谢谢!
【问题讨论】:
-
@Usama,您建议使用 XmlDocument 而不是 XDocument?但它如何帮助我解析命名空间?
-
Usama,我不应该打败命名空间。这不是我的情况