我正在使用 nokogiri 打开一个现有的 html 文件,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Foo</title>
</head>
<body>
<!-- stuff -->
</body>
</html>
然后我像这样更改body标签的内容:
html_file = Nokogiri::HTML("path/to/html/file")
html_file.css('body').first.inner_html = "new body content"
然后我将这个新文档写入这样的文件:
File.open("path/to/new/html/file", 'w') {|f| f.write html_file}
这是我生成的 html 文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
new body content
</body></html>
我的问题是,是否可以告诉 Nokogiri 保留原始 html 文件doctype
和meta
标签,因为当我使用 Nokogiri 打开文档并尝试将其写入文件时,它们似乎正在丢失/更改。
任何帮助将非常感激。谢谢!