跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

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

使用 XML 的必备工具和库

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

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

发布日期: 2001 年 6 月 01 日
级别: 初级
访问情况 : 3100 次浏览
评论: 


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 与他联系。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=XML
ArticleID=21877
ArticleTitle=Perl 开发人员:充实您的 XML 工具箱
publish-date=06012001
author1-email=tdarugar@velocigen.com
author1-email-cc=tdarugar@velocigen.com

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。