使用Nokogiri和XPath获取具有多个属性的节点

Tim*_*imD 6 ruby xpath nokogiri

我正在尝试使用Nokogiri来解析一个带有一些相当古怪的标记的HTML文件.具体来说,我正在尝试抓取同时定义了id,多个类和样式的div.标记看起来像这样:

<div id="foo">
  <div id="bar" class="baz bang" style="display: block;">
    <h2>title</h2>
    <dl>
      List of stuff
    </dl>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我试图抓住<dl>问题div里面的东西.我可以使用单个id属性获得没有问题的div,但是我无法找到让Nokogiri用id 类来获取div的方法.所以这些工作正常:

content = @doc.xpath("//div[id='foo']")

content = @doc.css('div#foo')
Run Code Online (Sandbox Code Playgroud)

但这些不会返回任何东西:

content = @doc.xpath("//div[id='bar']")

content = @doc.xpath("div#bar")
Run Code Online (Sandbox Code Playgroud)

我有什么明显的遗漏吗?

Dim*_*hev 4

我可以毫无问题地获取具有单个 id 属性的 div,但我无法找到一种方法让 Nokogiri 获取具有 id 和类的 div。

你要

//div[id='bar' and class='baz bang' and style='display: block;']
Run Code Online (Sandbox Code Playgroud)