WEB开发网
开发学院WEB开发PHP 面向PHP开发人员的XML 第2部分: 高级XML解析技术 阅读

面向PHP开发人员的XML 第2部分: 高级XML解析技术

 2008-11-19 22:24:53 来源:WEB开发网   
核心提示: 基于树的解析器之所以称为基于树的解析器,是因为它们将整个 xml(标准化越来越近了) 文档加载到内存中,面向PHP开发人员的XML 第2部分: 高级XML解析技术(2),并把文档的根作为主干,把所有的儿子、孙子和它们的后代以及属性作为分支,但是要记住,如果要把很大的 xml(标准化越来越近了) 文档一次加载到内存中,

基于树的解析器

之所以称为基于树的解析器,是因为它们将整个 xml(标准化越来越近了) 文档加载到内存中,并把文档的根作为主干,把所有的儿子、孙子和它们的后代以及属性作为分支。最熟悉的基于树的解析器是 DOM。编码最简单的基于树的解析器是 Simplexml(标准化越来越近了)。后面对两者都将作出介绍。

使用 DOM 解析

根据 W3C 的定义,DOM 标准是 “……一种平台和语言中立的接口,能够让程序和脚本动态地访问和更新文档的内容、结构和样式。” GNOME 项目的 libxml(标准化越来越近了)2 库用 C 实现了 DOM 及其全部方法。因为所有的 PHP5 xml(标准化越来越近了) 扩展都基于 libxml(标准化越来越近了)2,所以彼此之间具有完全的互操作性。这种互操作性大大增强了它们的功能。比方说,可以使用流解析器 xml(标准化越来越近了)Reader 获取一个元素,将其导入 DOM,然后用 XPath 提取数据。这就大大增加了灵活性。清单 5 给出了一个例子。

DOM 是基于树的解析器。DOM 很容易理解和使用,因为其内存结构与原始 xml(标准化越来越近了) 文档相似。DOM 通过创建对象树来向应用程序传递信息,它完全复制了 xml(标准化越来越近了) 文件的元素树,每个 xml(标准化越来越近了) 元素都是树上的一个节点。DOM 是一种 W3C 标准,由于和其他编程语言的一致性,对于开发人员来说,为 DOM 增加了不少权威性。因为 DOM 要创建整个文档的树,要占用大量内存和处理器时间。

使用 DOM

如果由于受设计或者其他因素的限制必须在解析器领域内耍点小聪明的话,则仅仅从灵活的角度来看应该选择 DOM。使用 DOM 可以构建、修改、查询、验证和转换 xml(标准化越来越近了) 文档。可以利用所有的 DOM 方法和属性。多数 DOM level 2 方法的实现都有适当的属性支持。由于非凡的灵活性,使用 DOM 可以解析任意复杂的文档。但是要记住,如果要把很大的 xml(标准化越来越近了) 文档一次加载到内存中,则取得灵活性的代价相当高昂。

上一页  1 2 3 4 5 6 7  下一页

Tags:面向 PHP 开发

编辑录入:coldstar [复制链接] [打 印]
赞助商链接