【问题标题】:Xpath to extract from following siblings until the next specified node从以下兄弟节点中提取直到下一个指定节点的 Xpath
【发布时间】:2016-06-09 17:07:36
【问题描述】:

我正在尝试从包含"Summary"h2 之后的p 节点中提取所有内容,直到我到达下一个h2

这是我目前所拥有的:

.//h2[contains(text(),'Summary')]/following-sibling::*

我只是不知道如何让它停止。这甚至可能吗?

【问题讨论】:

  • 添加 p[1] 而不是最后一个 * 。如果您有多个带有文本摘要的 h2 元素,则在 [contains(..)] 之后添加 [1]

标签: xpath import.io


【解决方案1】:

如果您选择p[preceding-sibling::h2[1][contains(., 'Summary')],您将选择上下文节点的所有p 子节点,这些子节点具有(或一个)h2,其中包含Summary 作为紧接在前面的h2 兄弟节点。

如果您想要所有这些元素(例如 ul 太),请使用 *[not(self::h2)][preceding-sibling::h2[1][contains(., 'Summary')]

或者你可以试试.//h2[contains(., 'Summary')]/following-sibling::*[preceding-sibling::h2[1][contains(., 'Summary')]]

【讨论】:

  • 非常感谢。//p[preceding-sibling::h2[1][contains(., 'Summary')]] 完美运行。我没有考虑过“向后”工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-24
  • 1970-01-01
  • 2018-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多