【问题标题】:Match on certain text and go to the next h1 element using xpath匹配某些文本并使用 xpath 转到下一个 h1 元素
【发布时间】:2021-12-04 11:20:24
【问题描述】:

我想获取某个文本之后的元素内的文本,即。 '预计收入增长'。我想获得价值 18.10% 。我要遵循的模式是如上所述查找某个文本,然后获取紧跟 h2 元素之后的文本。

是否可以有一个 xpath 表达式同时执行这两个步骤?

  1. 匹配特定文本“预计收入增长”的 div
  2. 转到 div 外的直接 h1 元素(我必须在这里跳转两个 div 才能到达 h1 元素)

如何匹配文本并通过 xpath 到达下一个直接 h1 元素?

<div>
    <div class="p small mb-8 box-label text-left text-blue-500">
        <div class="tt-container">
            <button aria-label="open tooltip" class="button link" type="button" role="tooltip" aria-expanded="false">
                Projected earning growth
            </button>
        </div>
    </div>
    <h2 class="mb-8 text-left">18.10%</h2>
</div>

【问题讨论】:

    标签: java xml xpath xpath-2.0 domxpath


    【解决方案1】:

    如果我理解正确,你想从Projected earning growth 转到 h2 标签中的18.10%。不知道你为什么提到 h1 标签。

    //button[contains(text(),'Projected earning growth')]/../../following-sibling::h2
    

    应该完成工作,

    注意/.. 可以在 HTMLDOM 中升级。

    这是您遇到的问题的直接解决方案。

    我还建议您查看xpath parentancestor

    【讨论】:

    • 您提供的表达式适用于原始帖子中的 html sn-p。我正在尝试对来自 fidelity.co.uk/factsheet-data/factsheet/… 的实际报废页面做同样的事情。如果您在预计的收入增长下搜索 18.10,这就是我要提取的内容。但我得到了空白。我错过了什么?它与我从源代码复制并粘贴到我的原始帖子中的 sn-p 相同。 @cruisepandey 有什么建议吗?
    • 我查看了您共享页面的 HTML。我看到 1/1 匹配节点。 xpath 是正确的。你试过什么代码给你空格?
    最近更新 更多