我正在尝试遍历可能嵌套的XML文档中的一些元素,但是当我遍历它们时,我可能会从树中删除一些元素。我在考虑最好的方法是递归执行此操作,所以我试图创建一个XPath查询来选择所有相对于当前节点的顶级节点。 // foo [not(ancestor :: foo)]在文档级别上效果很好,但我试图弄清楚如何从相对查询中做到这一点。XPath查询 - 选择相关的顶级节点
<foo id="1">
<foo id="2" />
<foo id="3">
<foo id="4">
<bar>
<foo id="5">
<foo id="6" />
</foo>
<foo id="7" />
</bar>
</foo>
</foo>
</foo>
如果当前节点是foo#3,我只想选择foo#4。当前节点是foo#4时,我只想选择foo#5和foo#7。
我想我试图选择当前节点的任何后代foo节点,但没有任何祖先节点之间的当前节点和我选择的节点之间。我的难题是,如果我们已经在foo节点中,而不是(ancestor :: foo)不起作用。
你有没有得到一个答案呢? – 2012-12-29 06:06:51
我想我找到了一个不同的解决方案。我一直没有在这个项目上一年多,所以不知道我最终做了什么...... – John 2013-02-15 19:01:29