xml - 使用 nokogiri 构建器添加一个 dtd

标签 xml ruby nokogiri dtd

我正在使用 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>
...

使用 builder 我可以使用 instruct!declare! 但我想坚持使用 nokogiri 因为我在我的项目中将它用于其他目的,我想保持低要求。你有什么想法吗?

谢谢

最佳答案

以下内容来自 Nokogiri::XML::Builder page 底部的注释(可能是最近添加的),我认为这可以解决问题:

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

关于xml - 使用 nokogiri 构建器添加一个 dtd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1961461/

相关文章:

ruby - ruby -run 命令行参数的文档在哪里?

ruby - 如何使用 FileLists 作为 rake 依赖项

ruby - 修改 html 节点内的文本 - nokogiri

SQL Server - 仅使用 .modify() 合并两个 XML

php - 什么是 "Payload"?例如 XML 负载

PHP:将导入的文本大写

ruby - 我们可以一起使用 selenium-webdriver 和 nokogiri 吗?

xml - 在 Delphi 2010 中从 XML 读取°度数符号

ruby 公案 : test_nil_is_an_object

ruby - 使用 Nokogiri 按名称查找节点