2011-03-10 56 views
0

从Ruby中的XML文档生成查询字符串(url params)的最佳选择是什么?xml查询字符串

xml_string = <abc><session>1234</session><description>some_description</description></abc> 

query_string = # I want here "?abc=session......." 
+1

不应该是'?session = 1234&description = some_description'? URL参数是平坦的,例如,只有一个级别,而你的XML有两个级别。 – gnab 2011-03-10 12:56:36

+0

你使用rails或active_support? – tokland 2011-03-10 13:11:20

回答

2
xml_string = "<abc><session>1234</session><description>some_description</description></abc>" 
result = "?"+Hash.from_xml(xml_string).to_query 
0

XmlSimple是一个很好的宝石。

require 'rubygems' 
require 'xmlsimple' 

data = XmlSimple.xml_in(xml_string) 
url_params = xml_to_url_params(data, "abc") 


def xml_to_url_params(xml_data, root) 
    elements = [] 
    data[root].each do |item| 
    item.each do |name, value| 
     elements << "#{CGI::escape(name)}=#{CGI::escape(value)}" 
    end 
    end 
    elements.join("&") 
end 

ps。没有测试过这个代码,所以可能会有bug;)