解析来自第三方Web服务的Xml响应

解析来自第三方Web服务的Xml响应

问题描述:

我已经为我的rails 2应用程序安装了cURB库,并且能够将多个xml文件作为发布请求发送到Web服务的单个URL。除此之外,我还从xml文件中的Web服务收到一个收据,我需要由我的应用程序对其进行解析,并将从提交的文件创建的错误输出。 请有人能指导我一个好的库和教程捕获响应和解析xml文档。解析来自第三方Web服务的Xml响应

所有的建议表示赞赏。

除非您已经这样做,否则我建议您使用libxml2库来处理XML。 libxml2库作为每个主要Linux发行版的软件包提供。

gem install libxml-ruby 

下面是一个独立的例子,即使用Rails 2.3.14的作品,展示了如何使用XML解析器路边对象分析结果。然后演示如何使用XPath查询从分析的XML文档中选择元素。

require 'xml/libxml' 
require 'curb' 

# I have included this part so that this serves as a standalone example 

ce = Curl::Easy.new("http://www.myexperiment.org/announcements.xml") 
ce.perform 

# This is the part that deals with parsing the XML result 

doc = LibXML::XML::Parser.string(ce.body_str).parse 

# You can then use XPath queries to process the results, e.g.: 

doc.find("/announcements/announcement").each do |el| 
    puts el.content 
end 

完整文档libxml-ruby可用。

+0

感谢Don的回复,但我想从Web服务中检索一个xml文件,之后我给他们发送了一些xml文件。 例如:http://*.com/questions/9195314/collect-xml-response-by-third-party-web-service 这可以用于相同的情况..?感谢您的回复 – A1aks 2012-02-08 14:40:37

+0

是的,这可以用于这种情况。你的其他问题中的变量“request_test”与我的例子中的“ce”是同一个对象。 – 2012-02-08 14:47:25

+0

我调整了示例,并使用nokogiri gem来回答您的其他问题。 – 2012-02-08 14:56:55