选择包含xpath标记的文本

时间:2017-06-11 12:29:35

标签: html xpath

我需要选择包含带有xpath的<a>标记的文本,但我无法找到正确的方法来执行此操作。结果应该是“图片标题和链接”。并且应该保留锚链接。

<p class="caption"><img src="..."> 
Image Caption <a href="...">And A Link</a>.
</p>

我试过的最后一个表达式是

//*[preceding-sibling::img]

但无论我怎么做,我只需从<a>标签中选择外部或仅选择文本。

1 个答案:

答案 0 :(得分:0)

您无法选择不存在的内容。此HTML中不存在LazyList

"Image Caption And A Link."

你能得到的最好的是一个单独节点的列表 - 看起来你想要<p class="caption"><img src="..."> Image Caption <a href="...">And A Link</a>. </p> 内的所有节点,除非它是p.caption。这可行:

img

并返回三个节点:

//p[contains(@class, 'caption')]/node()[not(self::img)]

为防止因部分匹配而导致CSS类中的误报匹配,请使用

['\nImage Caption ', <a href="...">And A Link</a>, '.\n']