如何使用Ruby Builder在XML标签中动态插入一些属性?

Jam*_*mes 1 ruby xml builder

我正在使用Ruby Builder(http://builder.rubyforge.org/)从数据库动态生成XML文件。

要添加名称在变量中的标签,我找到了这个:xml.tag!(@ myTagName)

如何在此Tag中动态插入à属性列表?

  • 我不知道从数据库动态加载的属性的名称
  • 我需要创建一个循环,因为我不知道要插入多少个属性。

谢谢。

Nik*_*kos 5

我认为要做您需要的事情并不难。每当添加标签时,您都可以传递可选的哈希值,该哈希值将成为标签的属性。例如,如果您这样做:

  builder = Builder::XmlMarkup.new
  xml = builder.person(name: "foo", age: 0 ) 
Run Code Online (Sandbox Code Playgroud)

然后你会得到 <person name='foo' age='0'/>

因此,以类似的方式,如果您将动态属性构建为哈希,则可以使用如下#tag!方法:

xml = builder.tag!(tag_name, attributes_hash)
Run Code Online (Sandbox Code Playgroud)