旧服务的 XML 解析指南
在应用开发过程中,我们常常会遇到需要与旧服务集成的情况,而这些服务的设计往往不受我们控制。许多旧服务(甚至一些新服务)会使用 XML 格式,如 SOAP、XML - RPC 或 RESTful XML。本文将介绍一些用于解析和处理基于 XML 服务的工具,重点讲解使用 REXML 和 Nokogiri 解析 XML 响应,以及如何使用 Savon 处理基于 SOAP 的服务。
1. XML 解析概述
虽然 JSON 因其易用性和简洁性迅速成为序列化的首选方法,但客户端库有时仍需处理 XML。在 Ruby 中,有多种用于解析 XML 的库,包括 REXML、Nokogiri、Hpricot、LibXml Ruby 和 SimpleXML。本文主要关注 REXML 和 Nokogiri,原因如下:
- REXML:包含在 Ruby 1.8 及更高版本的标准库中,是一个用纯 Ruby 编写的功能齐全的 XML 解析库,全面支持 XPath。
- Nokogiri:由 libxml 和 libxslt C 库支持的 HTML 和 XML 解析器,与 Ruby 的多个版本兼容,速度快,还支持强大的 CSS3 选择器。
为了更好地说明解析过程,我们以 Amazon EC2 Query API 的 “describe instances” 响应为例。以下是该响应的示例 XML:
<DescribeInstancesResponse
xmlns="http://ec2.amazonaws.com/doc/2009-08-15/"
<reservationSet&
超级会员免费看
订阅专栏 解锁全文
4080

被折叠的 条评论
为什么被折叠?



