你能不能帮我找到节点" c"根据节点" b"没有重写xpath?
<a><b><c> </c></b></a>
即。我目前的解决方案是:
node_b = xpath('a/b');
node_c = xpath('a/b/c').
现在我正在寻找可以通过
找到node_c的解决方案xpath(node_b + '/c')
或类似的东西。也就是说将variable( node_b )
嵌入到xpath中。
答案 0 :(得分:0)
我扩展了您的示例,以便能够区分c
节点中的a/b
节点和不属于c
节点的function xpath_by_string (xml)
{
dom = (new DOMParser()).parseFromString(xml, "text/xml");
return function (expr, node)
{
if (!node) { node = dom; }
return dom.evaluate (expr, node, null,
XPathResult.UNORDERED_NODE_ITERATOR_TYPE,
null)
.iterateNext();
};
}
var xpath = xpath_by_string ("<a><c class='not_in_b'></c><b><c class='in_b'></c></b></a>");
节点。
c
使用上述代码,您可以选择相对于a/b
的{{1}}:
xpath ('c', xpath ('a/b'))
在Firefox中测试。