13

如何选择具有两个类的 html 元素?

例如,如何<p>在 HTML 文档中选择元素波纹管(假设它有两个 css 类)class='class1 class2'

我尝试使用以下内容:

  • doc.xpath("//p[@class~='class1 class2']")
  • doc.xpath("//p[@class~='class1']|[@class~='class2']")
  • doc.xpath("//p[@class~='class1',@class~='class2']")
  • doc.xpath("//p[contains(concat(' ', @class, ' '), ' class1 ') && contains(concat(' ',@class, ' '), ' class2 ')]")

但没有成功。

提前致谢

4

1 回答 1

27

最后,我找到了使用 nokogiri (libxml) 搜索多个 css 类的正确方法:

doc.xpath('//p[contains(@class, "class1") and contains(@class, "class2")]')

这并不完美,因为如果<p>包含诸如class10class20元素之类的类,将被选中,但现在它足以满足我的需要。如果你有更多的建议欢迎他们!

更新

这是仅使用 css 解决此问题的更好方法:

doc.css('p.class1.class2')

感谢亚伦帕特森 :-)

于 2009-11-19T18:15:54.550 回答