如果您拥有或控制文件的格式,那么使用正则表达式解析 XML 或 HTML 对于琐碎的任务来说还可以。如果您不这样做,那么对文件的简单更改可能会破坏您的正则表达式。
使用解析器可以避免这个问题;我用Nokogiri解析了一些可怕的 XML,它甚至没有注意到。在编写了一个处理 1000 多个提要的 RSS 聚合器之后,我迷上了使用解析器。
require 'nokogiri'
html = '<span id="preview-local-desc"> I want to pick up everything typed here.
Paragraphs, everything.
</span>'
doc = Nokogiri.HTML(html)
doc.at('span').text
# => " I want to pick up everything typed here.\n Paragraphs, everything.\n "
如果<span>
您需要多个标签:
doc.search('span').map(&:text)
# => [" I want to pick up everything typed here.\n Paragraphs, everything.\n "]
如果有多个<span>
标签,而您只想要这个:
doc.at('span#preview-local-desc').text
# => " I want to pick up everything typed here.\n Paragraphs, everything.\n "