Xpath使用现有节点查找节点

时间:2018-05-08 06:14:12

标签: xml xpath

你能不能帮我找到节点" 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中。

1 个答案:

答案 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中测试。