在 Ruby 中转换回 HTML

Converting back to HTML in Ruby

我正在解析HTML内容:

doc = Nokogiri::HTML::DocumentFragment.parse(html_content)

我正在用 class 名称 'pubdate online' 替换 p 标签中的文本。

doc.css("p.pubdate.online").each do |node|
   node.content = self.send("#{article_type}_released_at").strftime("%B %d, %Y")
 end

我正在尝试将解析后的 HTML 转换回原始 HTML。

 doc.to_html

但是现在 doc.to_html 没有 <DOCTYPE!><head> 标签或 <body> 标签。所以问题是当使用 HTML 我得到原始 HTML 代码而不是 HTML 页面。帮助我将文档转换回原始 HTML 内容并替换文本。

如前所述here,你能试试这个吗:

node = doc.at_css("p.pubdate.online")
node.content = self.send("#{article_type}_released_at").strftime("%B %d, %Y")
doc.to_html

试试这个

doc = Nokogiri::HTML(html_content)

我无法重现您的问题,但让我印象深刻的是您将 html_content 解析为片段而不是完整文档。