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

发布于 2025-01-03 09:29:49 字数 189 浏览 0 评论 0原文

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

感谢所有建议。

I have installed cURB library for my rails 2 application and I am able to send multiple xml files to a single url of a web service as a post request. In addition to that I receive an receipt from the web service in an xml file which I need to be parsed by my application and out put the errors that have been created from the submitted file.
Please could some one guide me with a good library and tutorial in capturing the response and parsing the xml document.

All suggestions are appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

紫竹語嫣☆ 2025-01-10 09:29:49

除非您已经这样做了,否则我建议您使用 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 的完整文档。

Unless you have already doing so, I recommend you use the libxml2 library for processing XML. The libxml2 library is available as a package on every major Linux distribution.

gem install libxml-ruby

What follows is a standalone example, that works with Rails 2.3.14, showing how to parse results from curb objects using an XML parser. It then demonstrates how to use XPath queries to select elements from the parsed XML document.

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

Complete documentation for libxml-ruby is available.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文