在 Savon 中解析日期和时间时丢失 xml 数据
我在我的 RoR 应用程序中使用 Savon。
这是我对服务的调用:
client = Savon::Client.new(MY_SOAP_CLIENT)
response = client.request :wsdl, :get_history do
soap.body = "<startDate>2011-09-23</startDate><endDate>2011-09-24</endDate><userId>3</userId>"
end
我得到了 XML 中的下一个响应:
<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">
<soapenv:Body xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">
<resMessage xmlns=\"http://xxx-xxx.xxx.edu/xxx/\">
<result>date=2011-09-23?amount=13.00?time=08:50:38?user=a00123?type=transfer</result>
<result>date=2011-09-23?amount=3.00?time=08:51:27?user=a00123456?type=transfer</result>
<result>date=2011-09-23?amount=20.00?time=09:49:00?user=a00123456?type=transfer</result>
</resMessage></soapenv:Body></soapenv:Envelope>
但是,主要问题是当我调用 response.to_hash
时,我只得到了 Date 对象部分:
=> [2011年9月23日星期五、2011年9月23日星期五、2011年9月23日星期五]
这非常适合日期,但结果的其他部分丢失:金额、时间、用户和类型。另外,如果我调用response.body,我会不断得到相同的结果:
=> {:res_message=>{:result=>[星期五, 2011年9月23日, 星期五, 2011年9月23日, 星期五, 2011年9月23日, 星期五, 2011年9月23日, 星期五, 2011年9月23日], :@xmlns=>"http://xxx-xxx.xxx.edu/xxx/"}, :“@xmlns:soapenv”=>“http://schemas.xmlsoap.org/soap/envelope/”}
我在这里没有找到解决方案,也没有找到Savon问题
提前致谢
I'm using Savon in my RoR app.
This is my call to the service:
client = Savon::Client.new(MY_SOAP_CLIENT)
response = client.request :wsdl, :get_history do
soap.body = "<startDate>2011-09-23</startDate><endDate>2011-09-24</endDate><userId>3</userId>"
end
And I'm getting the next response in XML:
<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">
<soapenv:Body xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">
<resMessage xmlns=\"http://xxx-xxx.xxx.edu/xxx/\">
<result>date=2011-09-23?amount=13.00?time=08:50:38?user=a00123?type=transfer</result>
<result>date=2011-09-23?amount=3.00?time=08:51:27?user=a00123456?type=transfer</result>
<result>date=2011-09-23?amount=20.00?time=09:49:00?user=a00123456?type=transfer</result>
</resMessage></soapenv:Body></soapenv:Envelope>
But, the main problem is when I call response.to_hash
I only get the Date objects part:
=> [Fri, 23 Sep 2011, Fri, 23 Sep 2011, Fri, 23 Sep 2011]
This is great for the date, but the other part of the results are missing: amount, time, user and type. Also if I call response.body
I keep getting the same results:
=> {:res_message=>{:result=>[Fri, 23 Sep 2011, Fri, 23 Sep 2011, Fri,
23 Sep 2011, Fri, 23 Sep 2011, Fri, 23 Sep 2011],
:@xmlns=>"http://xxx-xxx.xxx.edu/xxx/"},
:"@xmlns:soapenv"=>"http://schemas.xmlsoap.org/soap/envelope/"}
I didn't find the solution for this here nor Savon Issues
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你可以使用:
这会给你一个正确的哈希值。
Ruby (RoR) XML 进行哈希处理,然后在视图中显示
You could use:
and that would give you a correct hash.
Ruby (RoR) XML to hash and then show in views