【问题标题】:Tokenize with <br/> in xPath/xQuery在 xPath/xQuery 中使用 <br/> 进行标记
【发布时间】:2012-08-06 14:47:03
【问题描述】:

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

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

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

【问题讨论】:

    标签: xml xpath xquery tokenize line-breaks


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-18
      • 2012-02-02
      • 2017-02-08
      • 1970-01-01
      • 1970-01-01
      • 2014-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多