xpath 正文中的所有 HTML 标签 <a> 除了 <footer> 仅限于 x

xpath all HTML tags <a> in body except in <footer> limited to x

我需要在 body 中找到所有 HTML 标签 a 除了来自 footer并将它们限制在某个值。

没有任何限制,我找到了这个:

//body | //a[not(ancestor::footer)]

虽然不确定它是否正确。

有限制:

//body | //a[not(ancestor::footer)]/a[position()<=25]

但这行不通

或:

//body | //a[not(ancestor::footer)] | /a[position()<=25]

但它不限制任何东西

组合条件的正确语法是什么?

据我所知你不应该在那里使用 |
如果没有数量限制,您的 XPath 可能是

//body//a[not(ancestor::footer)]

虽然输出限制为 25 个结果,但只有你的 XPath

//body//a[not(ancestor::footer) and position()<=25]