2011-03-11 40 views
1

我有一個用戶對象數組,我想返回爲xml。我如何使用to_xml在根元素上包含屬性?例如Rails數組to_xml

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

我知道你可以添加自定義的元素和屬性,以使用與to_xml方法塊中的XML,但我不知道如何添加到根元素。也許還有另一種方式,除了使用to_xml

回答

1

我已經使用了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