par*_*tic 4 ruby xml dtd nokogiri
我nokogiri用来生成svg图片.我想添加正确的xml前导码和svg DTD声明来得到类似的东西:
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg>
...
Run Code Online (Sandbox Code Playgroud)
随着builder我可以使用instruct!和declare!,但我想坚持nokogiri,因为我在我的项目中使用它的其他用途,我想留在低要求.你有什么想法吗?
谢谢
以下是来自Nokogiri :: XML :: Builder页面底部的注释(可能最近添加),我认为这样做可以解决问题:
builder = Nokogiri::XML::Builder.new do |xml|
xml.doc.create_internal_subset(
'html',
"-//W3C//DTD HTML 4.01 Transitional//EN",
"http://www.w3.org/TR/html4/loose.dtd"
)
xml.root do
xml.foo
end
end
puts builder.to_xml
Run Code Online (Sandbox Code Playgroud)
小智 2
您现在可以(不知道从哪个版本)使用 Node#create_internal_subset 来创建 DTD 节点。欲了解更多信息,请参阅:http://nokogiri.org/Nokogiri/XML/Builder.html
向下滚动到“文档类型”部分以获取示例。