Nokogiri 是一个强大的 Ruby Gem,用于解析和操作 HTML 和 XML 文档。如果你想在 HTML 标签之前获取文本,你可以使用 Nokogiri 的 search
方法结合 XPath 表达式来实现。
Nokogiri 提供了两种主要的文档对象模型(DOM)接口:Nokogiri::HTML::Document
和 Nokogiri::XML::Document
。这些接口允许你使用 CSS 选择器或 XPath 表达式来查找和操作文档中的元素。
Nokogiri 主要有两种类型的解析器:
以下是一个使用 Nokogiri 在 HTML 标签之前获取文本的示例:
require 'nokogiri'
html = <<-HTML
<div>
这是一些文本
<p>这是一个段落</p>
这是更多的文本
<span>这是一个 span 元素</span>
</div>
HTML
doc = Nokogiri::HTML(html)
# 获取所有 <p> 标签之前的文本
doc.xpath('//p/preceding-sibling::text()').each do |text_node|
puts text_node.text.strip
end
# 获取所有 <span> 标签之前的文本
doc.xpath('//span/preceding-sibling::text()').each do |text_node|
puts text_node.text.strip
end
//p/preceding-sibling::text()
:这个 XPath 表达式会选取所有 <p>
标签之前的文本节点。//span/preceding-sibling::text()
:这个 XPath 表达式会选取所有 <span>
标签之前的文本节点。如果你在使用 Nokogiri 时遇到问题,比如无法正确获取文本,可能的原因包括:
解决方法:
tidy
来清理 HTML。通过上述方法,你应该能够有效地使用 Nokogiri 在 HTML 标签之前获取文本。
没有搜到相关的文章