在XPATH中选择最近的名为“BATCH”的祖先

时间:2014-03-13 10:17:03

标签: xml xpath xpath-2.0

我试图选择第一个名为" BATCH"上升到XML树。

我已尝试过:ancestor::BATCHancestor::BATCH[1]但它无效。

[XPATH 2.0]

1 个答案:

答案 0 :(得分:1)

第一个祖先是什么意思?

如果您有XML:

<!-- second ancestor -->
<BATCH>
    <a>
       <!-- first ancestor -->
       <BATCH>
           <b></b>
       </BATCH>
    </a>
</BATCH>

假设您的上下文节点为<b>,您可以使用ancestor::BATCH[1]选择我所描述的第一祖先

但是,如果第一个祖先是指最外层的祖先,我在这里定义为第二祖先你必须使用ancestor::BATCH[not(ancestor::BATCH)] 选择没有祖先BATCH的祖先BATCH。


如果你的评论中提到像@keshlam这样的命名空间问题,你可以使用

ancestor::*[local-name()='BATCH'][1]

选择忽略其命名空间。