我试图通过程序运行,并使用builder方法动态分配元素。在逐步执行过程时,我尝试使用变量动态分配元素。我尝试了一些方法来使此变量虽然传递到元素中,但不起作用。
我最初是通过将数据构建为散列开始的,但是在我的整个过程中,我有重复的密钥,因此我不得不移到更直接的地方。
是否可以使用Builder达到我想要的效果
require 'builder'
x = Builder::XmlMarkup.new(:target => $stdout,:indent => 1)
x.instruct!
x.character do
stats = "health,mana,armor"
stats.split(",").each do |stat|
key = stat.strip.downcase
value = rand()
x.key value
end #end do
end #end do
输出
C:\Projects>ruby test.rb
<?xml version="1.0" encoding="UTF-8"?>
<character>
<key>0.1405191069855357</key>
<key>0.3484226234753265</key>
<key>0.4658284443108096</key>
</character>
所需的输出
C:\Projects>ruby test.rb
<?xml version="1.0" encoding="UTF-8"?>
<character>
<health>0.1405191069855357</health>
<mana>0.3484226234753265</mana>
<armor>0.4658284443108096</armor>
</character>