2013-12-19 19 views
5

私はNokogiriを使用してXML文書を構築しようとしています。これまではすべてがかなり標準的です。私のエンド・ユーザーが出力する必要があることを指定したものである<Tag4/>代わりの<Tag4></Tag4>のようなタグでの結果、ということ、しかし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に完全なタグを無制限に設定するように指示するにはどうすればよいですか?

答えて

8

​​3210 :: 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: 
<?xml version="1.0"?> 
<blah/> 
fixed: 
<?xml version="1.0"?> 
<blah></blah> 
+0

* + 1 * ...素晴らしいです... –

関連する問題