我需要选择包含<a>
带有 xpath 标签的文本,但我想不出正确的方法来做到这一点。结果应该是“图片说明和链接”。并且应该保留锚链接。
<p class="caption"><img src="...">
Image Caption <a href="...">And A Link</a>.
</p>
我尝试的最后一个表达是跟随,
//*[preceding-sibling::img]
但无论我怎么做,我要么只选择外部<a>
标签,要么只选择标签中的文本。
你不能选择不存在的东西。"Image Caption And A Link."
此 HTML 中不存在。
<p class="caption"><img src="...">
Image Caption <a href="...">And A Link</a>.
</p>
你能得到的最好的是一个单独节点的列表 - 看起来你希望所有节点都在 a 中,p.caption
除非它是img
. 这会起作用:
//p[contains(@class, 'caption')]/node()[not(self::img)]
并返回三个节点:
['\nImage Caption ', <a href="...">And A Link</a>, '.\n']
为了防止由于部分匹配而导致 CSS 类中的匹配误报,请使用
//p[contains(concat(' ', @class, ' '), ' caption ')]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句