【问题标题】:XPath to retrieve text within spanXPath 检索跨度内的文本
【发布时间】:2013-04-20 21:48:33
【问题描述】:

我正在尝试找出将从以下 HTML sn-p 中检索“文本数据 3”的 XPath

  <span class="inner-span">
    Text-data 1
    <br>
    <span>Text Data 2</span> text Data 3
   </span>

到目前为止,我已经尝试了以下 Xpath,它引导我进入类 'inner-span' 的跨度

 /html/body/div/div[4]/div[2]/div[2]/div/div[2]/div/span[@class="inner-span"]

但不知道要向 Xpath 添加更多内容,这只会给我来自 Html sn-p 上方的文本“文本数据 3”。 谢谢

【问题讨论】:

    标签: html xpath xpath-2.0


    【解决方案1】:

    对于您的特定情况,此 XPath 查询将起作用:

    normalize-space(//span[@class="inner-span"]/text()[last()])
    

    在online tester 中尝试过,结果如下:

    1. 您的 HTML;
    2. 我的 XPath 表达式;
    3. 预期结果“文本数据 3”。

    【讨论】:

    • 我在您提供的同一链接上检查了您的解决方案,但它提供了来自 [@class="inner-span"] 的所有文本数据。我只想要文本数据 3,而不是所有文本数据 1、文本数据 2、文本数据 3。
    • 我已经添加了一个屏幕截图,向您展示我得到的结果以及我是如何得到它的,希望对您有所帮助。
    【解决方案2】:

    您可以选择/html/body/div/div[4]/div[2]/div[2]/div/div[2]/div/span[@class="inner-span"]/text()[last()] 来获取文本节点(尽管带有前导和尾随空格),或者您可以使用返回带有normalize-space(/html/body/div/div[4]/div[2]/div[2]/div/div[2]/div/span[@class="inner-span"]/text()[last()]) 的字符串的XPath。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-27
      • 2020-05-15
      • 1970-01-01
      • 1970-01-01
      • 2016-10-02
      • 1970-01-01
      相关资源
      最近更新 更多