我试图选择第一个名为" BATCH"上升到XML树。
我已尝试过:ancestor::BATCH
和ancestor::BATCH[1]
但它无效。
[XPATH 2.0]
答案 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]
选择忽略其命名空间。