Tej*_*tha 2 ruby html-parsing nokogiri
如果我想在Ruby中使用Nokogiri解析HTML块,如下所示:
<th class="first">ancd</th>
<th>xyz</th>
<th>sdf</th>
Run Code Online (Sandbox Code Playgroud)
如何排除包含特定类名的标记?在这种情况下的"第一".
您可以使用CSS选择器:
doc.css('th:not(.first)')
Run Code Online (Sandbox Code Playgroud)
在这个简单的例子中,您还可以使用xpath:
doc.xpath('//th[not(@class="first")]')
Run Code Online (Sandbox Code Playgroud)
不同之处在于xpath需要在类名中完全匹配.如果你有可能有多个类,例如<th class="red first">然后CSS选择器将识别它,但xpath不会(没有使它更复杂).
编辑:仅供参考,如果您希望xpath可以在元素上有多个类时选择一个类:
doc.xpath('//th[@class and contains(concat(" ",normalize-space(@class)," "), " first ")]')
Run Code Online (Sandbox Code Playgroud)
通常,XPath比CSS选择器更灵活,但这是一个支持CSS的HTML边缘情况.
| 归档时间: |
|
| 查看次数: |
1704 次 |
| 最近记录: |