如何使用XPath选择祖先的特定兄弟



我有以下HTML结构:

<p>
  <!-- Span can be any level deep -->
  <span>
    Some text
  </span>
</p>
<!-- Any number of different elements between span and table -->
<p></p>
<div></div>
<table>
  <tr>
    <td></td>
  </tr>
</table>

使用Nokogiri和自定义XPath函数,我能够选择包含与正则表达式匹配的上下文的<span>元素。我不得不这样做,因为Nokogiri使用的是XPath 1.0,并且不支持matches选择器:

@doc.xpath("//span[regex_match(text(), '/some text/i')]")

选择span节点后,如何选择span后面的表?

我使用contains函数来匹配文本。然后使用following::table来查找这个span标签后面的表。

@doc.xpath("//span[contains(text(), 'Some text')]/following::table")

相关内容

  • 没有找到相关文章

最新更新