Это работает для меня:
require 'nokogiri'
builder = Nokogiri::XML::Builder.new do |xml|
xml.root do
xml.Entity "xsi:type"=>"ValidEntityTypeForCCOMClass" do
xml.GUID 'DEADBEEF'
xml.IDInInfoSource "Hi Mom"
end
end
end
puts builder.to_xml
#=> <?xml version="1.0"?>
#=> <root>
#=> <Entity xsi:type="ValidEntityTypeForCCOMClass">
#=> <GUID>DEADBEEF</GUID>
#=> <IDInInfoSource>Hi Mom</IDInInfoSource>
#=> </Entity>
#=> </root>
Если это работает для вас, пожалуйста, предоставьте простой, воспроизводимый контрольный пример.(Ваш приведенный выше код не работает из-за зависимостей от данных и библиотек, которые не были включены.)
Если он не работает для вас, пожалуйста, перечислите версии Ruby и Nokogiri.
Редактировать : Я подтвердил, что вижу тот же результат без новой строки, что и OP, при использовании jRuby 1.5.6 и Nokogiri 1.5.0.beta.4.Та же проблема не возникает в Ruby 1.9.2 и Nokogiri 1.5.0.beta.4.Я предполагаю, что это различие в поведении libxml2 по сравнению с чистым Java Nokogiri.
Edit 2 : я подал ошибку Nokogiri для этого.Из этого сообщения об ошибке следует отметить одну интересную вещь: вывод версии jRuby содержит дополнительную новую строку после документа , которого нет в других.