2017-01-17 43 views
1

我解析HTML内容:转换回HTML在Ruby中

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

我使用类名称“pubdate的网上”替换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内容并替换文本。

回答

0

试试这个

doc = Nokogiri::HTML(html_content) 

我无法重现你的问题,而是什么伸出我的是,你解析html_content作为一个片段而不是一个完整的文档。

0

如前所述here,你可以试试这个:

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