PHP中XML的应用

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:scorpiokyan
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:随着网络的普及,XML在电子商务和数据交换中扮演了越来越重要的角色,而PHP则一直在动态网页的设计中得到广泛应用,两者的结合具有重要的意义。该文通过对PHP语言的XML解析器的使用与编写XML操作类的两种方式进行论述,给出了在PHP中运用XML的解决途径。
  关键词:PHP;XML;expat;类
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)26-1627-02
  The Application of XML In PHP
  XU Ning,FAN Yu-hui
  (Huainan Normal University, Huainan 232001, China)
  Abstract: With the popularization of Internet,XML acts as a more and more important role on E-commerce and data exchange. However,PHP has been used widely in dynamic Web-page design in a long time.Their combination becomes significant now. This page discusses in detail on the two kinds of method that the use of XML parse andwrite Xml Control class,and gives the solutions to make use of XML in PHP.
  Key words: PHP; XML; expat; class
  
  1 引言
  
  随着网络的普及,XML在电子商务和数据交换中扮演了越来越重要的角色,而PHP则一直在动态网页的设计中得到广泛应用,两者的结合具有重要的意义。
  XML是eXtensible Markup Language(可扩展的标注语言)的缩写,是一种W3C标准,主要用于Web应用程序和服务器之间实现容易的交互、数据的存储与使用。它是一整套定义语义标记的规则,这些标记将文档分成许多部件,并对这些部件加以标识。[1]它是当今最热门的技术之一,已在INTERNET世界被广泛接受和使用,成为数据交换的重要标准。
  PHP(即Hypertext Preprocessor超文本预处理器)是一种HTML内嵌式的语言,其独特的语法混合了C、Java、Perl以及PHP式的新语法,可以比CGI或者Perl更快速地执行动态网页,已经成为一种得到广泛应用的服务器端脚本语言。它不仅在相当早的版本就开始支持XML,而且不断加强完善了这种支持。[2]
  
  2 PHP对XML的处理
  
  正确提取及有效识别XML文档中的数据,是进行XML文档数据后期处理的前提。这就需要对文档进行解析。应用程序必须通过XML解析器访问XML文档的结构和内容。一种语言对XML的支持往往起始于其内置XML解析机制的引入。
  2.1 PHP中的XML解析器
  在较低版本的PHP中就包含了一个基于SAX的XML解析接口,开始了对XML的支持;此后PHP4逐步增加了更好的XML支持,首先添加了DOMXML扩展模块和XSLT,后期在DOMXML扩展中也添加了其它一些功能,如HTML和DTD验证。PHP4所提供的是不稳定的而且是非W3C兼容的DOMXML扩展,这些扩展也存在不少需要修复的问题,始终处于不断修改中,因此未得到广泛的使用。正因为如此,在PHP5中,XML支持部分几乎被全部重新编写。PHP5的所有XML扩展都是基于GNOME项目的LIBXML2库,允许不同的扩展模块之间互相操作,开发者可以在同一个底层的库上进行开发。除了继承SAX解析器,PHP5还支持遵循W3C标准的DOM和基于LIBXSLT引擎的XSLT,同时还加人了PHP独有的SimpleXML,符合标准的SOAP扩展,有利于Web服务的应用。
  2.2 PHP中expat解析器的功能
  expat是PHP中的XML解析器,通过它可以使程序访问XML文档的结构和内容。expat把每个XML标签或者新一行代码当作事件的起始,而事件就是函数的触发器。用PHP解析XML的基本过程是:
  创建XML解析器的一个实例;定义处理触发事件的函数;定义实际意义的数据处理程序;打开XML文件,读取文件数据并解析数据;关闭文件释放XML解析器。[3]
  XML解析器的两种基本类型:
  1) 基于树型的解析器:将XML文档转换成树型结构。这类解析器分析整篇文章,同时提供一个API来访问所产生树的每个元素。其通用的标准为DOM(文档对象模式)。
  2) 基于事件的解析器:将XML文档视为一系列的事件。当一个特殊事件发生时,解析器将调用开发者提供的函数来处理。基于事件的解析器有一个XML文档的数据集中视图,这类解析器从头到尾处理文档,并将类似于“元素的開始”、“元素的结尾”、“特征数据的开始”等等事件通过回调(callback)函数报告给应用程序。[4]
  不同于基于树型的解析器,基于事件的解析器不产生描述文档的结构。在CDATA项中,基于事件的解析器不会给出父元素greeting的信息。然而,它提供一个更底层的访问,这就使得可以更好地利用资源和更快地访问。expat就是这样的一种基于事件的解析器。但必要时它一样可以在PHP中生成完全的原生树结构。由于expat是一个不检查有效性的解析器,因此忽略任何与文档联系的DTD,但应要求文档的完整格式,否则expat将会随着出错信息而停止。作为不检查有效性的解析器,exapt的快速性和轻巧性使其十分适合互联网程序。
  为了在PHP中使XML解析器有效,则需要一个支持XML的模块在web服务器上,因此要重新编译XML的模块。expat解析器通过在对XML文档进行解析的时候对不同的标记类型指定回调函数来完成的。当解析器开始解析XML文档并且遇上了一个标记,它将调用自定义函数,并且在继续往下执行之前由自定义函数对特定的标记进行处理。因此可以把它看作是一种事件驱动的方法。
  
  3 编写类实现对XML操作
  
  所谓类就是指由变量和作用于变量的函数组成的集合。通过有效的使用类,可以将描述同一对象的多个变量和函数组合在一起,作为一个整体使用,从而使编写出来的程序更直观,更合理,更易于维护。
  3.1 XML操作类的编写
  同样在PHP中也可以通过编写类来实现对XML文档的操作,编写一个类实现对XML文档的增加、修改、删除和查找等功能,在页面中对该类进行调用,可以轻松实现对XML文件的操作,以下编写一个类,实现对向XML文件中插入记录:
  class OpXML
  {private $fpath;
  private $enter;
  private $root;
  function __construct($root,$fpath)
  {$this->fpath=$fpath;
  $this->root=$root;
  $this->enter=chr(13).chr(10);
  $this->checkFile();}
  /*函数名:insert
  *说明:插入一条记录*/
  public function insert($fields)
  {$content=$this->getFileContent();
  preg_match_all(’|<key>(\d ?)<\/key>|’,$content,$matches);
  rsort($matches[1]);
  $newkey=$matches[1][0] 1;
  $record=’<record>’.$this->enter;
  $record.=’<key>’.$newkey.’</key>’.$this->enter;
  foreach($fields as $k=>$v)
  {$record.="<$k>$v</$k>".$this->enter;}
  $record.=’</record>’.$this->enter.$this->enter;
  $this->save(preg_replace(’/(?=<\/’.$this->root.’>)/’,$record,$content));
  return true;}}
  3.2 XML操作类的调用
  对于该类中其他函数的编写在此不一一赘述,下面通过一个例子来说明该类在XML文件操作中的使用:
  include(’./libs/x.class.php’); //OpXML类所在的文件
  $rootname=’ROOT’;//根标签名
  $fpath=’test.xml’;//文件的路径
  $x=new OpXML(’ROOT’,$fpath);
  $arr=array(’username’=>’Tom’,’sex’=>’男’, ’tel’=>’139999999’, ’address’=>’北京’);
  $x->insert($arr);
  
  4 结束语
  
  上面介绍了XML在PHP中應用的两种方法,对比它们的实现方式,可以发现两种方法在实现对XML文件的操作上各自具有不同特点,PHP的XML解析器在使用上需要服务器、PHP版本等的支持,而编写XML操作类的方式则无需上述限制,可以很方便的实现。随着PHP新版本的不断推出,PHP的功能不断强大,对XML的支持也不断加强。本文中论述了PHP对XML文档处理的两种方式,给用户提供了多种可行方案。
  
  参考文献:
  [1] 王秋云.XML数据存储方法的研究[J].重庆科技学院学报(自然科学版),2007,(4):89-91.
  [2] 李晰.脚本语言PHP的XML应用支持[J].计算机与数字工程,2007,(6):137-139.
  [3] 刘小东.XML技术上传文件[J].中国ASP,2003,(2):27-34.
  [4] 聂丹.探析PHP中XML的应用[J].山西电子技术,2006,(2):94-96.
其他文献
摘要:在PKI中,证书路径的构建是非常重要的过程,也许在可信赖的第三方与终端实体之间有多个候选路径,探讨了PKI路径的构建时蚁群算法的应用,并对PKI路径的构建时最短路径问题进行了研究。  关键词:公钥基础设施;蚁群算法;证书路径构建  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)08-1pppp-0c    为了验证一个证书,在证书与可信赖的第三方之间必须建立一条
《中国传统文化视域下学生德育研究》一书围绕当前学校教育中学生德育工作的焦点,从当代学生思想与道德教育基本理论出发,对中国传统文化与德育教育的关系进行了详尽论述,重点讨论了中国传统文化对学生德育的影响及其与学生德育融合的策略,旨在对相关领域的教育工作者起到启发与借鉴作用。  全书共分为九章,第一至第三章是理论分析,主要介绍了当代学生德育教育的现状、德育教育发展历程,以及传统文化与德育教育的相关理论和
潘强、徐中原、邵光辉主编的《多元文化背景下大学生思想政治教育的挑战与创新》(中国纺织出版社)一书通过对当前大学生思想政治教育研究现状与存在问题的全面总结,提出了以我国大学生为主体的新的教育理论,为当前多元文化背景下的大学生思想政治教育提供了新方向。该书有三个突出特点。  一是内容完善,层次清晰。该书研究内容立足于实际,从多元化的视角出发,阐述了当前大学生思政教育的研究现状与存在的问题,并针对这些问
摘要:语文阅读是语文教育教学的基本要求和重要目标,是培养良好学习习惯的重要环节,是提升语文课堂教学质量的重要举措,处于至关重要的地位,发挥着重要的作用。良好的语文阅读可以有效培养学生学习语文的自信心和自觉性,可以有效激发学生学习语文的兴趣,培养学生的兴趣爱好。本文试图简要分析阅读的重要性,提出加强语文阅读的对策建议。  关键词:语文阅读 教育教学 重要性  语文阅读能力是学习语文的重要基础,不仅具
摘要:文章介绍了一个运行在Windows下的网络检测软件Windump,详细描述了Windump的使用方法及参数,并通过实例介绍了Windump在网络管理中的实际应用。  关键词:网络;TCP/IP;Windump  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)16-21214-02  A Way(or Analysis) to Detect the Network
摘要:自动气象站资料在气象业务工作中具有重要的价值。文章对ASP.NET与GDI 的某些方法进行了研究,利用ASP.NET实现在网页中以图表方式显示自动站数据库资料。  关键词:自动气象站;.NET;GDI   中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)19-30080-02  Displaying the Data of Automatic Station Da
摘要:在互联网高速发展的今天,JSP技术也得到了飞速的发展,它在运行速度、安全性、可移植性均比传统的Web编程语言有很大的改进。因此了解并掌握在JSP开发中使用数据库的方法和技巧日益重要。  关键词:JSP;数据库;网站  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)27-1889-03  The Application of JSP Technology in D
摘要:在高等职业教育中,采用CBE 教学模式进行实践课教学, 利用基于建构主义教育理论的开源网络教学平台Moodle 对如何做好高职教学, 建立以职业能力培养为目标的高职高专新型教学模式的方法与策略进行了研究和探索。  关键词:Moodle平台;CBE教学模式;应用  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)24-1355-02    Moodle Platf
【摘要】“画配话”是低年级写话训练的一种形式,一般是纸张的上面为画,下面为写话。画可以是学生自己画,也可以利用剪贴画等现成的图画,主旨是以“画”促“话”,训练学生的表达能力,为写话服务。本文拟从课内和课外训练两个方面对“画配话”在教学中的应用进行阐述。  【关键词】画配话,语言训练,课内,课外  “画配话”一般是纸张的上面为画,下面为写话,画可以是学生自己画,也可以利用剪贴画等现成的图画形式。学生
摘要:随着计算机网络技术的发展,网络安全问题越来越多的受到人们的关注,同时,也出现了各种类型的计算机病毒和木马程序。最近,出现了一种特殊木马程序——Rootkit,该文详细的介绍了Rootkit的隐藏技术和检测方法。  关键词:Rootkit;木马程序;网络安全;隐藏;检测  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)31-0838-02  Defence and