Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16501762
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:11:13

下载本文示例代码
  概述  在网上有许多php的XML教程,但是只有少数介绍如何使用DOM来解析XML。我想利用这个机会展示一下在PHP编程中除了广泛使用的SAX实现方式外,还有另一种选择。  DOM(Document Object Model,文档对象模型)和SAX(Simple API for XML,XML简单应用程序接口)在如何解析XML上有不同的方法。SAX引擎完全是事件驱动的。当它遇到一个标记时,它就调用一个适当的函数来处理它。这使得SAX非常快速和有效。然而他给你的感觉就象被套在一个没完没了的循环里面。你发现自己使用了太多的全局变量和条件语句。  另一方面,DOM方法稍稍对内存有些敏感。它把整个XML文档以层次化的结构方式装载到内存里。这就是说,所有的数据组成了一个家族树,它们对编程者来说都是可用的。这种方法更直观,更容易使用,也提供了更多的可读性。  为了使用DOM函数,你必需在配置PHP时,使用'--with-dom'参数。它们不是标准配置的组成部分,这里有一个简单的编译方式。 %> ./configure --with-dom --with-apache=../apache_1.3.12%> make%> make install  译注:在Win32平台上支持DOM做法是这样的。首先,将下载包中dlls目录下的php_domXML.dll文件复制到系统目录下。NT、Win2K是system32目录,9X是system目录。其次,修改php.ini文件。将"Paths and Directories"中的extension_dir参数指向php_domXML.dll所在的路径,如extension_dir = C:\Winnt\system32;将"Dynamic Extensions"中extension=php_domXML.dll前的注释去掉。  DOM如何构造XML  因为DOM装载一个完整的字符串或文件到内存中作为一个树,这使我们可以将这些数据作为一个整体进行操作。我们拿这个XML文档作为一个例子。 <?XML version="1.0"?><book type="paperback"><title>Red Nails</title><price>$12.99</price><author><name first="Robert" middle="E" last="Howard"/><birthdate>9/21/1977</birthdate></author></book>  数据将象这样被组织起来 DomNode book||-->DomNode title| || |-->DomNode text||-->DomNode price| || |-->DomNode text||-->DomNode author||-->DomNode name||-->DomNode birthdate||-->DomNode text  任何被标记封闭起来的文本都是它们自身的节点。举个例子来说,"Red Nails"是title的子节点,"$12.99"是price的子节点。共3页。 1 2 3 :   概述  在网上有许多php的XML教程,但是只有少数介绍如何使用DOM来解析XML。我想利用这个机会展示一下在PHP编程中除了广泛使用的SAX实现方式外,还有另一种选择。  DOM(Document Object Model,文档对象模型)和SAX(Simple API for XML,XML简单应用程序接口)在如何解析XML上有不同的方法。SAX引擎完全是事件驱动的。当它遇到一个标记时,它就调用一个适当的函数来处理它。这使得SAX非常快速和有效。然而他给你的感觉就象被套在一个没完没了的循环里面。你发现自己使用了太多的全局变量和条件语句。  另一方面,DOM方法稍稍对内存有些敏感。它把整个XML文档以层次化的结构方式装载到内存里。这就是说,所有的数据组成了一个家族树,它们对编程者来说都是可用的。这种方法更直观,更容易使用,也提供了更多的可读性。  为了使用DOM函数,你必需在配置PHP时,使用'--with-dom'参数。它们不是标准配置的组成部分,这里有一个简单的编译方式。 %> ./configure --with-dom --with-apache=../apache_1.3.12%> make%> make install  译注:在Win32平台上支持DOM做法是这样的。首先,将下载包中dlls目录下的php_domXML.dll文件复制到系统目录下。NT、Win2K是system32目录,9X是system目录。其次,修改php.ini文件。将"Paths and Directories"中的extension_dir参数指向php_domXML.dll所在的路径,如extension_dir = C:\Winnt\system32;将"Dynamic Extensions"中extension=php_domXML.dll前的注释去掉。  DOM如何构造XML  因为DOM装载一个完整的字符串或文件到内存中作为一个树,这使我们可以将这些数据作为一个整体进行操作。我们拿这个XML文档作为一个例子。 <?XML version="1.0"?><book type="paperback"><title>Red Nails</title><price>$12.99</price><author><name first="Robert" middle="E" last="Howard"/><birthdate>9/21/1977</birthdate></author></book>  数据将象这样被组织起来 DomNode book||-->DomNode title| || |-->DomNode text||-->DomNode price| || |-->DomNode text||-->DomNode author||-->DomNode name||-->DomNode birthdate||-->DomNode text  任何被标记封闭起来的文本都是它们自身的节点。举个例子来说,"Red Nails"是title的子节点,"$12.99"是price的子节点。共3页。 1 2 3 : 下载本文示例代码


DOMXML: Expat之外的另一选择DOMXML: Expat之外的另一选择DOMXML: Expat之外的另一选择DOMXML: Expat之外的另一选择DOMXML: Expat之外的另一选择DOMXML: Expat之外的另一选择DOMXML: Expat之外的另一选择DOMXML: Expat之外的另一选择DOMXML: Expat之外的另一选择DOMXML: Expat之外的另一选择DOMXML: Expat之外的另一选择DOMXML: Expat之外的另一选择DOMXML: Expat之外的另一选择DOMXML: Expat之外的另一选择DOMXML: Expat之外的另一选择
阅读(73) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~