使用Nokogiri构建空白XML标签?

我正在尝试使用Nokogiri构建XML文档。 到目前为止,一切都很标准; 我的大多数代码看起来像:

builder = Nokogiri::XML::Builder.new do |xml| ... xml.Tag1(object.attribute_1) xml.Tag2(object.attribute_2) xml.Tag3(object.attribute_3) xml.Tag4(nil) end builder.to_xml 

但是,这会导致像而不是这样的 ,这是我的最终用户指定输出所需的标记。

如何告诉Nokogiri将全部标签放在零值附近?

SaveOptions :: NO_EMPTY_TAGS可以满足您的需求。

 require 'nokogiri' builder = Nokogiri::XML::Builder.new do |xml| xml.blah(nil) end puts 'broken:' puts builder.to_xml puts 'fixed:' puts builder.to_xml(save_with: Nokogiri::XML::Node::SaveOptions::NO_EMPTY_TAGS) 

输出:

 (511)-> ruby derp.rb broken:   fixed: