Ruby on rails Rails XML解析

Ruby on rails Rails XML解析,ruby-on-rails,ruby,xml,parsing,Ruby On Rails,Ruby,Xml,Parsing,谁能告诉我如何在rails上解析这个 <?xml version="1.0" encoding="utf-8"?> <message> <param> <name>messageType</name> <value>SMS</value> </param> <param> <name>id</name> <value

谁能告诉我如何在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>
这是我在访问我的方法时收到的参数

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}]}

有很多RubyXML解析库。但是,如果XML很小,则可以使用ActiveSupport哈希扩展:

Hash.from_xml(x)[“message”][“param”].inject({})do | result,elem |
结果[elem[“name”]=elem[“value”]
结果
结束
#=>{“msg”=>“xxxxxxxxxxxx”、“messageType”=>“SMS”、“udh”=>nil、“id”=>“xxxxxxxxxxxx”、“target”=>“xxxxxxxxxxxx”、“source”=>“xxxxxxxxxxxxxx”}

另外,请检查是否存在更复杂的问题。

您应该使用它来解析xml。速度很快。

哦,伙计,你能帮我一下吗,如果输入来自@message=message.new(params[:message])。。我不知道怎么把它插到X上。。它给了我一个零的结果,我正在使用它,但它不起作用mobi=(params[:message])。to xmlhow如何使它从这个代码起作用:D@message=message.new(params[:message])respond | to do | format | if@message.save format.html{重定向到(@message,:notice=>“消息已成功创建”)}format.xml{render:xml=>@message,:status=>:created,:location=>@message}else format.html{render:action=>“new”}format.xml{render:xml=>@message.errors,:status=>:unprocessable_entity}end
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}]}