0

我正在使用这个 xpath 表达式//*[@id='info_box']/p[contains(., 'Drafted')]作为输出: http: //pastebin.com/kRmCadiw(原始输出与原始格式)

我想要的是获取最后一个之后的所有文本<br>,所以我使用了:data(tokenize(//*[@id='info_box']/p[contains(., 'Drafted')], '\s*<br\s*/?>\s*')[last()])但它仍然在<p>(count(...)=1) 中给出全文,即使尝试使用简单的 '
' ......我不明白少了什么东西!

预期的输出是:Drafted by the San Francisco 49ers in the 2nd round (33rd overall) of the 2005 NFL Draft.

4

1 回答 1

1

搜索最后一个<br/>,然后使用following-sibling轴步骤查找其后的所有元素。由于您还需要不在元素内的文本节点,请使用 node test node()。因为您只想要数据而不是标记,所以添加对data().

/p/br[last()]/following-sibling::node()/data()

(由于您没有提供任何示例数据,我从您发布到 pastebin 的中间输出开始。请自己在开头添加查询的第一步。)

于 2012-08-06T15:53:54.267 回答