Ответ Барта Вандендриссе работает, но есть более простое решение, если вам нужно только текстовое поле внутри элемента.
require 'nokogiri'
b = Nokogiri::XML::Builder.new do |xml|
xml.send(:"foo-bar", 'hello')
end
puts b.to_xml
Формирует:
<?xml version="1.0"?>
<foo-bar>hello</foo-bar>
Если вам нужно, чтобы они были вложенными, вы можете передать блок
require 'nokogiri'
b = Nokogiri::XML::Builder.new do |xml|
xml.send(:'foo-bar') {
xml.send(:'bar-foo', 'hello')
}
end
puts b.to_xml
Формирует:
<?xml version="1.0"?>
<foo-bar>
<bar-foo>hello</bar-foo>
</foo-bar>