Nokogiri'不'选择器

Jam*_*mie 5 ruby nokogiri

Nokogiri有没有办法选择与选择器不匹配的所有元素.在jQuery中我会使用:

:not(*[@class='someclass'])
Run Code Online (Sandbox Code Playgroud)

但是,以下代码给出了xpath语法错误

dom = Nokogiri::HTML(@file)
dom.css(":not(*[@class='someclass'])")
Run Code Online (Sandbox Code Playgroud)

tvo*_*von 12

在CSS3中,:not()采用与其他选择器类似的选择器,因此它将是:

dom.css(":not(.someclass)")
Run Code Online (Sandbox Code Playgroud)

(未经测试,但选择器是正确的)

  • 我可以在Nokogiri 1.6.0中确认这项工作 (2认同)

dre*_*obb 3

我不确定您使用的语法,但这基本上是您想要的 xpath 选择器:

dom.xpath("//wherever/*[not (@class='someclass')]")
Run Code Online (Sandbox Code Playgroud)

  • 我不确定,Nokogiri 只支持 xpath 1 我相信这很烦人。您可以尝试使用 contains 函数进行子字符串匹配:“//wherever/*[not (contains(@class, 'some'))]” (3认同)