Ruby Nokogiri:查找直接路径中的所有标记,不包括任意级别的嵌套

Ruby Nokogiri:查找直接路径中的所有标记,不包括任意级别的嵌套,ruby,xpath,nokogiri,Ruby,Xpath,Nokogiri,假设我有一个html文档,如: <div id='findMe'> <table> <tr> <td> <p> <a href="bad">bad</a> </p> </td> </tr> </table> <p> This is some t

假设我有一个html文档,如:

<div id='findMe'>
  <table>
    <tr>
      <td>
        <p>
          <a href="bad">bad</a>
        </p>
      </td>
    </tr>
  </table>
  <p>
    This is some text and this is a <a href="good">link</a>
  </p>
</div>
但这是捕获两个链接。我还尝试了更显式的xpath:

Nokogiri::HTML(html).css('#findMe').xpath('//p/a')

但那是在做同样的事情。如何告诉Nokogiri只搜索树下的特定路径?

使用CSS中的
选择直接子代

Nokogiri::HTML(html).css('#findMe > p > a')
或者在xpath中使用
/

Nokogiri::HTML(html).xpath("//div[@id='findMe']/p/a")

在CSS中使用
选择直接子体

Nokogiri::HTML(html).css('#findMe > p > a')
或者在xpath中使用
/

Nokogiri::HTML(html).xpath("//div[@id='findMe']/p/a")

在CSS中使用
选择直接子体

Nokogiri::HTML(html).css('#findMe > p > a')
或者在xpath中使用
/

Nokogiri::HTML(html).xpath("//div[@id='findMe']/p/a")

在CSS中使用
选择直接子体

Nokogiri::HTML(html).css('#findMe > p > a')
或者在xpath中使用
/

Nokogiri::HTML(html).xpath("//div[@id='findMe']/p/a")

我想出了一个方法,但是我仍然不太习惯使用XPath,所以如果这不是最好的方法,请随意发布更规范的方法来实现这一点

Nokogiri::HTML(html).css(#findMe').xpath('//div/p/a')

我想出了一个方法,但是我仍然不太习惯使用XPath,所以如果这不是最好的方法,请随意发布更规范的方法来实现这一点

Nokogiri::HTML(html).css(#findMe').xpath('//div/p/a')

我想出了一个方法,但是我仍然不太习惯使用XPath,所以如果这不是最好的方法,请随意发布更规范的方法来实现这一点

Nokogiri::HTML(html).css(#findMe').xpath('//div/p/a')

我想出了一个方法,但是我仍然不太习惯使用XPath,所以如果这不是最好的方法,请随意发布更规范的方法来实现这一点

Nokogiri::HTML(html).css(#findMe').xpath('//div/p/a')

好的,如果我希望所有的
标记都在该div中,那么这是否有效?以及所有这些中的所有
标记?我想这里的问题不太清楚。好吧,如果我希望所有的
标签都在这个div中,这个方法行吗?以及所有这些中的所有
标记?我想这里的问题不太清楚。好吧,如果我希望所有的
标签都在这个div中,这个方法行吗?以及所有这些中的所有
标记?我想这里的问题不太清楚。好吧,如果我希望所有的
标签都在这个div中,这个方法行吗?以及所有这些中的所有
标记?我想这里的问题不太清楚。您的XPath正在选择文件中的所有
div
(并忽略
css()
选择器的上下文。)
css()
选择器将一个元素与
findMe
ID匹配,该ID恰好是
div
,但是XPath表达式会忽略该结果,并从所有div中获取包含
a
元素的节点集。这就是您真正想要的吗?您的XPath正在选择文件中的所有
div
(并忽略
css()
选择器的上下文。)
css()
选择器将一个元素与
findMe
ID匹配,该ID恰好是
div
,但是XPath表达式会忽略该结果,并从所有div中获取包含
a
元素的节点集。这就是您真正想要的吗?您的XPath正在选择文件中的所有
div
(并忽略
css()
选择器的上下文。)
css()
选择器将一个元素与
findMe
ID匹配,该ID恰好是
div
,但是XPath表达式会忽略该结果,并从所有div中获取包含
a
元素的节点集。这就是您真正想要的吗?您的XPath正在选择文件中的所有
div
(并忽略
css()
选择器的上下文。)
css()
选择器将一个元素与
findMe
ID匹配,该ID恰好是
div
,但是XPath表达式会忽略该结果,并从所有div中获取包含
a
元素的节点集。这就是你真正想要的吗?