<n1:data xmlns:n1="http://test.com/types" xmlns="http://test.com/basic" xmlns:n2="http://test.com/value">
<n2:value>Test</n2:value>
</n1:data>
我需要根据从外部代码接收到的XPath查询来选择其中的元素。除了根元素之外,选择工作正常。这是我用来选择元素的代码
NameTable nameTable = new NameTable();
XmlNamespaceManager nsmgr = new XmlNamespaceManager(nameTable);
nsmgr.AddNamespace("n1", "http://test.com/types");
nsmgr.AddNamespace("n2", "http://test.com/value");
var xpathQueryN1 = "//n1:data";
var xpathQueryN2 = "//n2:value";
var elementN1 = xmlContent.XPathSelectElement(xpathQueryN1, nsmgr);
var elementN2 = xmlContent.XPathSelectElement(xpathQueryN2, nsmgr);
第一次
会回来的
null
var xpathQueryN1 = "./n1:data";
var xpathQueryN1 = "n1:data";
但他们两个都不会回来
data
元素。唯一的办法就是
var xpathQueryN1 = ".";
为什么显式xpath到
n1:data