2012-02-08 148 views
0

我已經爲我的rails 2應用程序安裝了cURB庫,並且能夠將多個xml文件作爲發佈請求發送到Web服務的單個URL。除此之外,我還從xml文件中的Web服務收到一個收據,我需要由我的應用程序對其進行解析,並將從提交的文件創建的錯誤輸出。 請有人能指導我一個好的庫和教程捕獲響應和解析xml文檔。解析來自第三方Web服務的Xml響應

所有的建議表示讚賞。

回答

0

除非您已經這樣做,否則我建議您使用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://stackoverflow.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

相關問題