IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope:Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  XML  >

Perl 开发人员:充实您的 XML 工具箱

使用 XML 的必备工具和库

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

Parand Tony Darugar (tdarugar@velocigen.com), 首席软件设计师, VelociGen Inc.

2001 年 6 月 01 日

到 2001 年 6 月更新本文为止,可以找到 20 多个使用 Perl 进行 XML 开发所需的必备工具、库和模块。使用资源表可以快速找到允许组成强大的 XML 操纵工具箱的元素。

Perl 为 XML 开发人员提供了一套非常丰富的模块和库,足以与其它语言相媲美。Perl 社区早期曾快速开发出 XML 工具。Perl/XML 社区现在仍保持着相当的活力,它不仅以惊人地速度支持新的协议和标准, 还在 XML 的常规发展中起到了积极作用。Perl 的可扩展性使 C 和 C++ 模块能够简便地集成到 Perl 框架中,从而提供了一种速度和易用性的组合。

下列工具是我从开发 Perl/XML 工具和应用程序的经历中选出的比较中意的工具,也有从各种邮递列表、杂志和 Web 页面中收集的广受欢迎的工具。 这些工具将帮助您立即开发专业的基于 XML 的应用程序。

语法分析器和对象模型

从 XML 早期开始,XML 语法分析器就已经可用于 Perl。XML::Parser 模块是一个用于 James Clark 的出色的 expat 语法分析器的 Perl 接口,它是大多数其它分析和操纵模块的基础。XML::Simple 为简单的 XML 文件提供了一个直观的纯 Perl 语法分析器,而且大多数分析模块都支持 SAX API。

Perl 还对各种 XML 对象模型(包括 DOM、Grove 和 Twig)有很好的支持。各种各样的软件包提供了 DOM 或类似 DOM 的处理选项, 包括纯 Perl XML::DOM 模型、XML::LibXML、XML::XPath、Orchard 和即将发行的 Sablotron::DOM 软件包。 通过 Grove、Twig 和 PYX 模型,也可使用备用的处理模型。Twig 对大型文档尤其有用,它允许处理文档的各个段而无需对整个文档进行分析。

XML::Parser 用于 James Clark 的 XML 语法分析器 expat 的 Perl 接口
XML::Simple 用于读写 XML 的普通 API,最好与 XML 格式的配置文件一起使用
XML::XPath XPath 规范的完整实现。
XML::DOM XML::Parser 的 Perl 扩展,构建面向对象的数据结构并具有遵从 DOM 级别 1 的接口。作为 libxml-enno 的一部分分发。
XML::LibXML gnome libxml2 库的 Perl 接口,用于高性能的 DOM 处理。
XML::Grove 使用 Perl 散列树对已分析的 XML、HTML 或 SGML 实例组成的信息集进行简单访问
XML::Twig XML 文档的树型接口,允许对超大型文档一段段地处理
libxml-perl Perl 模块、脚本和文档的集合,用于在 Perl 中使用 XML。libxml-perl 软件与 XML::Parser、PerlSAX、XML::DOM、XML::Grove 等一起工作。
XML::Schematron 基于 XSLT 的 XML 验证模块
Orchard 用于 XML 和 XML 表示的数据的事件流和树型视图的轻量级 API
Xerces Perl “Apache XML 项目”中的 Xerces XML 语法分析器的 Perl 接口
REX 对有常规表达式的 XML 文档进行初步分析
PYX 至 PYX 生成器的 XML




回页首


XML 转换器、编写器和读取器

Perl 因其在与各种类型的旧有系统的连接中拥有丰富的选项而闻名。 利用这些连接和将 Perl 数据结构转换成 XML 的设施,Perl 成为一个为现有系统创建 XML 接口的出色平台。 诸如 XML::Edifact、DBIx::XML_RDB、XML::CSV、XML::Generator、XML::Dumper 和 XML::Writer 等扩展都可以对 Perl 数据结构、XML 和其它格式之间的数据进行各个方面的序列化和非序列化处理。

XML::Generator 在 Perl 内生成 XML 的模块
XML::Dumper 将 Perl 数据序列化和非序列化为 XML 的模块
XML::Writer 编写 XML 文档的 Perl 程序的帮助器模块。该模块处理所有属性值和字符数据的转义,并构造各种标记。
XML::Edifact 将 UN/Edifact 文档转换成 XML 的模块




回页首


协议和库

通常,Perl 会迅速支持新的协议和标准。 对于 SOAP、WDDX、RSS、XML-RPC 和 Microsoft 的 BizTalk 都有扩展。

SOAP::Lite SOAP 协议的卓越实现
SOAP/Perl 基于 XML 的协议,用于以与平台无关的方式访问服务、对象和服务器
WDDX.pm 在 Perl、Java 和 Cold Fusion 等各种语言之间交换数据的协议。该模块将 Perl 变量和 WDDX 信息包互相转换。
XML::RSS 创建和维护 Rich Site Summary (RSS) 文件的基本框架。RSS 主要用来分发新闻标题(通常称为通道)。




回页首


商业产品

大多数 Perl 扩展都在开发源码的模型下享有社区支持。Perl 的商业系统和软件包支持比 Java 等语言的系统和软件包要少得多。

VelociGen XML Server 是一种商业产品(出自我工作的公司),它使用 Perl 作为一种交换和处理 XML 文档并创建基于 Web 服务的应用程序的语言。 Open Source Axkit 也使用了商业支持,它使用 XML 提供 Web 发布和内容管理。

AxKit 开放源码的 XML Web 发布和内容管理
VelociGenX Web 服务平台,具有数据库和旧系统连接性。使 Perl 接口用于分析、操纵和变换 XML 文档。




回页首


样式表和查询语言

XML 已有一套查询和变换数据的相关标准。其中两个最常用的是:“可扩展样式表语言变换 (XSLT)”和“XML 路径语言 (XPath)”。 XPath 提供了一种公共语法和功能来寻址和搜索 XML 文档各个部分。XSLT 使用 XPath 来实现 XML 文档到其它 XML 文档的变换。

XML::XSLT XSL 模板处理的 Perl 实现。XML::XSLT 执行在 XSL 样式表中指定的到 XML 文件的变换。
XML::XPath W3C 的 XPath 规范的实现
XML::QL 称为“XML-QL: XML 查询语言”的 W3C 注释的实现。使用户能够象数据库那样查询 XML 文档,并描述输出的构造。
XML::XQL XQL 规范的 Perl 实现,允许对 XML 树型结构(如 XML::DOM)进行 XQL 查询。作为 libxml-enno 的一部分分发。
XML::LibXSLT gnome libxslt 库的 Perl 接口,用于高性能的 XSLT 处理。
XML::XSLT::Wrapper 各种 XSLT 模块的通用封装器
XML::Xalan Apache Xalan XSLT 库的 Perl 接口




回页首


数据库接口

Perl 长期以来一直通过 DBD/DBI 模块享有卓越的数据库支持。DBIx::XML_RDB 使用这些模块构建所有流行数据库的 XML 封装器。XML::CSV 为以文本分隔的文件(如通用的以逗号分隔的值和以制表符定界的格式)提供了类似支持。

DBIx::XML_RDB Perl 扩展,用于从诸如数据库的现有 DBI 数据源创建 XML
XML::CSV 将以逗号分隔的值转换为 XML


参考资料



关于作者

author

Parand Tony Darugar 是 Binary Evolution Inc. 的总裁和创始人之一。他从 1992 年起就投身于因特网创业之中。他的兴趣包括因特网商业、数据库和旧有系统到 Web 的连接、XML 及人工智能。他是多个开放源码的产品(包括 Tcl-Mysql 接口)的程序设计者。 可以通过 tdarugar@velocigen.com 与他联系。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

建议?




回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款