Rails XML解析 [英] Rails XML parsing
本文介绍了Rails XML解析的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
任何人都可以告诉我如何解析它.
Can anybody tell me how to parse this on rails.
<?xml version="1.0" encoding="utf-8"?>
<message>
<param>
<name>messageType</name>
<value>SMS</value>
</param>
<param>
<name>id</name>
<value>xxxxxxxxxxxxxx</value>
</param>
<param>
<name>source</name>
<value>xxxxxxxxxxx</value>
</param>
<param>
<name>target</name>
<value>xxxxxxxxxxxxx</value>
</param>
<param>
<name>msg</name>
<value>xxxxxxxxxxxxx</value>
</param>
<param>
<name>udh</name>
<value></value>
</param>
</message>
我对此XML没有控制权,但我希望在保存到数据库之前可以使参数看起来像这样
I have no control on this xml, but I hope I can make the parameter looks like this before saving to my database
message"=>{"msg"=>"sampler", "id"=>"1", "target"=>"23123", "source"=>"312321312"}
这是我访问方法时收到的参数
here is the parameter I received when it access my method
message"=>{"param"=>[{"name"=>"id", "value"=>"2373084120100804002252"}, {"name"=>"messageType", "value"=>"SMS"}, {"name"=>"target", "value"=>"23730841"}, {"name"=>"source", "value"=>"09156490046"}, {"name"=>"msg", "value"=>"Hello world via iPhone"}, {"name"=>"udh", "value"=>nil}]}
推荐答案
有很多Ruby XML解析库.但是,如果您的XML很小,则可以使用ActiveSupport哈希扩展 .from_xml
:
There are a lot of Ruby XML parsing libraries. However, if your XML is small, you can use the ActiveSupport Hash extension .from_xml
:
Hash.from_xml(x)["message"]["param"].inject({}) do |result, elem|
result[elem["name"]] = elem["value"]
result
end
# => {"msg"=>"xxxxxxxxxxxxx", "messageType"=>"SMS", "udh"=>nil, "id"=>"xxxxxxxxxxxxxx", "target"=>"xxxxxxxxxxxxx", "source"=>"xxxxxxxxxxx"}
这篇关于Rails XML解析的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文