如果我有一些类似下面的HTML
<div class=unique_id>
<h1 class="parseasinTitle">
<span> Game Title </span>
</h1>
Game Developer
</div>
有没有办法可以使用xpath来获取文本的“游戏开发者”部分?从搜索周围我试过:
//div[@class='unique_id' and not(self::h1/span)]
但这仍然给了我整个文本“Game Title Game Developer”。
答案 0 :(得分:5)
div[@class = 'unique_id']/text()[not(normalize-space() = '')]
或
div[@class = 'unique_id']/text()[last()]
取决于具体情况。
请注意,您仍需要修剪生成的文本节点。
答案 1 :(得分:0)
方括号中的条件(“谓词”)指定节点的条件。 div
节点不是同时h1
,因此否定是否满足。但是,如果您使用child
代替self
,这可能是您最初的意图,那么您将无法获得预期的文本 - 您将无法获得任何内容,因为这意味着“搜索具有unique_id tah的div不会有一个h1 / span孩子“。
如果需要文本,请指定text():
//div/text()[last()]