5

如果我有一些像下面这样的 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)]

但这仍然给了我整个文本“游戏标题游戏开发者”。

4

2 回答 2

6
div[@class = 'unique_id']/text()[not(normalize-space() = '')]

或者

div[@class = 'unique_id']/text()[last()]

取决于上下文。

请注意,您仍然需要修剪生成的文本节点。

于 2013-08-13T20:31:11.827 回答
0

方括号(“谓词”)中的条件指定节点的条件。div节点不在h1同一时间,所以否定成立。但是,如果您使用child而不是self,这可能是您最初的意图,您将无法获得预期的文本 - 您将一无所获,因为这意味着“搜索具有 unique_id tah 的 div 没有 h1/span 子项”。

如果需要文本,请指定 text():

//div/text()[last()]
于 2013-08-13T20:31:45.503 回答