可爱的 Python: 重温 Python 的 XML 工具
2007-03-29 12:03:45 来源:WEB开发网验证
您可能需要展望标准 XML 支持的未来的原因是,在进行语法分析的同时需要进行验证。不幸的是,标准 Python 2.0 XML 包并不包括验证型语法分析器。
xmlproc 是 python 原有的语法分析器,它执行几乎完整的验证。如果需要验证型语法分析器, xmlproc 是 Python 当前唯一的选择。而且, xmlproc 提供其它语法分析器所不具备的各种高级和测试接口。
选择一种语法分析器
如果决定使用 XML 的简单 API (SAX) -- 它应该用于复杂的事物,因为其它大部分工具都是在它的基础上建立的 -- 将为您完成许多语法分析器的分类工作。 xml.sax 模块包含一个自动选择“最佳”语法分析器的设施。在标准 Python 2.0 安装中,唯一能选择的语法分析器是 expat ,它是种 C 语言编写的快速扩展。然而,也可以在 $PYTHONLIB/xml/parsers 下安装另一个语法分析器,以备选择。设置语法分析器很简单:
清单 2: Python 选择最佳语法分析器的语句
import
xml.sax
parser = xml.sax.make_parser()
您还可以通过传递参数来选择特定的语法分析器;但考虑到可移植性 -- 也为了对今后更好的语法分析器的向上兼容性 -- 最佳方法是使用 make_parser() 来完成工作。
您可以直接导入 xml.parsers.expat 。如果这样做,您就能获得 SAX 界面并不提供的一些特殊技巧。这样, xml.parsers.expat 与 SAX 相比有些“低级”。但 SAX 技术非常标准,对面向流的处理也非常好;大多数情况下 SAX 的级别正合适。通常情况下,由于 make_parser() 函数已经能获得 expat 提供的性能,因此纯速度的差异很小。
什么是 SAX
考虑到背景因素,回答什么是 SAX 的较好答案是:
更多精彩
赞助商链接