例如,我只想从以下元素中提取em
元素,
<p><em>xxx</em>yyy<p>
但不是下一个中的em
。
<p>some extra text<em>xxx</em>yyy<p>
是否可以使用xpath做到这一点?
答案 0 :(得分:0)
您可以使用preceding-sibling
支票,如下所示:
print(tree.xpath("//em[not(preceding-sibling::text())]/text()"))
使用此HTML:
<p><em>xxx</em>yyy</p>
<p>some extra text<em>xxx</em>yyy</p>
<p><em>yes</em>anotherText</p><p>test<em>no</em></p><p><em>yes2</em>Text</p>
输出:
['xxx', 'yes', 'yes2']