为什么xPath假设命名空间

时间:2018-10-26 13:20:49

标签: c# xpath xml-namespaces

下面的SelectNodes方法中的xPath不会返回任何节点,即使xCurrent文档中有这样的节点。

XmlDocument xCurrent = new XmlDocument();
xCurrent.Load(File);
foreach (XmlNode Node in xCurrent.DocumentElement.SelectNodes("//Product"))
{
    ...
}

我认为应该基于此: https://msdn.microsoft.com/pl-pl/library/ms256086(v=vs.110).aspx

// author 文档中的所有元素。

但是我发现跟随xPath返回所需的内容

xCurrent.DocumentElement.SelectNodes("//*[local-name()=\"Product\"]"))

在我看来,xPath假定“ // Product”的意思是“ // elibri:Product”,因为“ //” xPath仅返回“ elibri:Dialect”节点。该假设背后的原因是什么? DocumentElement的子节点列表如下。

List of child nodes from VS debugger

0 个答案:

没有答案