如何选择具有两个类的html元素?
例如,如何在HTML文档中选择元素<p>
(假设它有两个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 ')]")
但没有成功。
提前致谢
答案 0 :(得分:17)
最后,我找到了使用nokogiri(libxml)搜索多个css类的正确方法:
doc.xpath('//p[contains(@class, "class1") and contains(@class, "class2")]')
这并不完美,因为如果<p>
包含class10
和class20
等类,则会选择该元素,但现在它足以满足我的需要。如果您有更多建议,欢迎他们!
以下是仅使用css解决此问题的更好方法:
doc.css('p.class1.class2')
感谢Aaron Patterson: - )