我有一些 HTML 页面,其中要提取的内容标有 HTML 注释,如下所示。
<html>
.....
<!-- begin content -->
<div>some text</div>
<div><p>Some more elements</p></div>
<!-- end content -->
...
</html>
我正在使用 Nokogiri 并尝试提取 <!-- begin content -->
和 <!-- end content -->
注释之间的 HTML。
我想提取这两个 HTML 注释之间的完整元素:
<div>some text</div>
<div><p>Some more elements</p></div>
我可以使用此字符回调获取纯文本版本:
class TextExtractor < Nokogiri::XML::SAX::Document
def initialize
@interesting = false
@text = ""
@html = ""
end
def comment(string)
case string.strip # strip leading and trailing whitespaces
when /^begin content/ # match starting comment
@interesting = true
when /^end content/
@interesting = false # match closing comment
end
def characters(string)
@text << string if @interesting
end
end
我得到了纯文本版本,@text
但我需要将完整的 HTML 存储在@html
.