【问题标题】:Get inner text of nearest parent a tag获取最近父标签的内部文本
【发布时间】:2015-08-14 16:56:18
【问题描述】:

我正在使用 Ruby 和 Nokogiri 来解析页面上的 html。

<div><a href="#" title="firstTitle">text one</a></div>

  <p class="OK">some content</p>
  <p class="OK">some content</p>

<div><a href="#" title="secondTitle">text two</a></div>

  <p class="WARNING">some content</p>
  <p class="WARNING">some content</p>

<div><a href="#" title="thirdTitle">text three</a></div>

  <p class="CRITICAL">some content</p>
  <p class="CRITICAL">some content</p>

假设我想查找类为 WARNING 的段落,我可以通过以下方式成功地做到这一点:

doc = Nokogiri::HTML(html)
warning = doc.css('p.WARNING')

但现在我想定位最近的父 a 标签的内部文本,在这种情况下它将返回 text two

我尝试使用.first.parent.nameprevious_element 以及其他变体,但没有成功,希望能得到一些见解。谢谢!

【问题讨论】:

  • 您可以使用previous_element 向后移动,直到看到div

标签: html css ruby xpath nokogiri


【解决方案1】:

您可以使用 XPath preceding-siblng 轴在上下文元素之前查找特定的兄弟元素。例如,给定上下文元素是&lt;p&gt;,您可以尝试以下类似的方法来获取最接近的前同级div,然后返回相应的a 元素:

link = warning.at_xpath('./preceding-siblng::div[1]/a')

【讨论】:

  • 谢谢!这看起来很有希望,一旦我实施和测试成功,我就会接受。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-16
  • 1970-01-01
  • 1970-01-01
  • 2023-02-10
相关资源
最近更新 更多