Rails 数组 to_xml

发布于 2024-10-21 14:17:17 字数 264 浏览 5 评论 0原文

我有一个用户对象数组,我想将其作为 xml 返回。如何使用 to_xml 在根元素上包含属性?例如,

    <users total="10">
      <user>
      ..
      </user>
    </users>

我知道您可以使用带有 to_xml 方法的块将自定义元素和属性添加到 xml,但我不确定如何添加到根元素。也许除了使用 to_xml 之外还有另一种方法

I have an array of user objects which I want to return as xml. How can I use to_xml to include attributes on the root element? For example

    <users total="10">
      <user>
      ..
      </user>
    </users>

I know you can add custom elements and attributes to the xml using a block with the to_xml method, but I'm not sure how to add to the root element. Maybe there's another way other than using to_xml

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

倚栏听风 2024-10-28 14:17:17

我使用过 xml 生成器。以下代码片段涵盖了一些棘手的 xml 构建。

在你的控制器中,

require 'builder'

def show_xml
  @xml = get_xml_data
  respond_to do |format|
    format.html # show.html.erb
    format.xml { render :xml => @xml }
  end
end

def get_xml_data
  xml = Builder::XmlMarkup.new#(:target=>$stdout, :indent=>2)
  xml.instruct! :xml, :version => "1.0", :encoding => "US-ASCII"
  xml.declare! :DOCTYPE, :html, :PUBLIC, "-//W3C//DTD XHTML 1.0 Strict//EN",  
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
  favorites = {
    'candy' => 'Neccos', 'novel' => 'Empire of the Sun', 'holiday' => 'Easter'
  }

  xml.favorites do
    favorites.each do | name, choice |
     xml.favorite( choice, :item => name )
    end
  end
end

I have used xml builder. Following code snippet covers some tricky xml building.

In you controller,

require 'builder'

def show_xml
  @xml = get_xml_data
  respond_to do |format|
    format.html # show.html.erb
    format.xml { render :xml => @xml }
  end
end

def get_xml_data
  xml = Builder::XmlMarkup.new#(:target=>$stdout, :indent=>2)
  xml.instruct! :xml, :version => "1.0", :encoding => "US-ASCII"
  xml.declare! :DOCTYPE, :html, :PUBLIC, "-//W3C//DTD XHTML 1.0 Strict//EN",  
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
  favorites = {
    'candy' => 'Neccos', 'novel' => 'Empire of the Sun', 'holiday' => 'Easter'
  }

  xml.favorites do
    favorites.each do | name, choice |
     xml.favorite( choice, :item => name )
    end
  end
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文