进一步了解 Python中的 XML工具
2007-03-30 12:36:03 来源:WEB开发网4XPath
XPath 是在 XML 文档内描述节点路径的通用规范。XPath 规范是 XSLT 的组成部分,但它也用作其它 XML 技术的一部分。例如,当我决定为先前专栏文章中的大型 XML 文档开发一个索引生成器时,显然会选择 XPath 作为描述 XML 各部分的语法。
随 4Suite 一起提供的 xml.xpath 模块为涉及 XPath 描述的进一步编程提供了一个封装器。虽然 XPath 不需要 DOM 框架,但是 4XPath 提供一系列处理 DOM 树的实用程序。XPath 描述可以针对 DOM 树(或子树)运行,并将返回与描述匹配的节点对象列表。例如:
处理 XPath 节点匹配的 Python 代码片断
from
xml.dom.ext.reader
import
PyExpat
from
xml.xpath
import
Evaluate
reader = PyExpat.Reader()
dom = reader.fromString(some_function_to_get_XML())
path_descript =
'/this/that/other'
for
node
in
Evaluate(path_descript, dom.documentElement):
# do something with each matched node
上述代码片断(从 4Suite 演示程序中改编)递归遍历 DOM 树,查找具有 <that> 父节点和 <this> 祖父节点的 <other> 元素。但是,通常只对我们感兴趣的节点给出一个 XPath 描述要容易得多。
4ODS
在本文中我将只给出 ODS 的简短概述,主要是因为 4ODS 实际上并不是特定于 XML 的技术;另外,这部分有许多附带问题。在很大程度上,4ODS 是 4Suite 的一部分,因为 4Suite Server 期望它可用。
4ODS 的功能有点类似于 ZODB 的功能。实际上,4ODS 稍微简单些,它可以与 shelve 或 xml_pickle 作比较(即 4ODS 不包括本地事务性能力)。基本上,4ODS 是一种可以用来使 Python 对象在应用程序运行期间保持持久性的方法。当值得保持持久性时(用许多语言实现都很困难),其它 Python 工具都能很好地处理对象持久性。4ODS 的特别之处在于它专门实现了 ODMG 对象数据标准(Object Data Standard)v3.0(其它工具都无意实现)。除此之外,ODMG 标准使用 .odl 文件中的对象格式规范。如果您希望或者需要,除诸如 shelve 或 pickle 特别方法以外,4ODS 允许更正式的持续对象设计。
4RDF
RDF 是一种创建关于 XML 文档的“元数据”的方法。4RDF 包括一个库和一个命令行工具( 4rdf ),用于处理“资源描述框架(Resource Description Framework)”。当然,RDF 文档本身是 XML 格式的。要较好地了解 RDF 的用途,请阅读 Uche Ogbuji 关于该主题的 developerWorks 专栏文章(请参阅 参考资料)。
结束语
4Suite 库为 Python/XML 程序员的工具箱添加了许多高级能力。4XSLT 弥补了本机 Python XML 工具一个非常明显的缺陷。其它一些 4Suite 工具涉及了更多特定领域,但是,如果您的应用程序涉及这些特定领域,那么您有必要去研究一下它们。
更多精彩
赞助商链接