当前位置: 首页 > 图文教程 > 网络编程 > PHP > 使用PHP 5.0 轻松解析XML文档(3)

PHP
让我们来编写一些PHP实用的脚本
七种缓存使用武器 为网站应用和访问加速
动态网页PHP中引用&的使用注意事项
在PHP中全面阻止SQL注入式攻击
PHP自带可以代替echo调试的unit函数
小结:PHP动态网页程序优化及高效提速问题
php对特殊语句查询结果进行数组排序
实例:用PHP技术解决网站URL格式过长的问题
小结:PHP动态网页程序两个有用的小技巧
动态网页中直接不让访问PHP程序文件
网页实例:详细介绍用PHP来编写网页记数器
菜鸟学习:动态网页PHP基础学习笔记
利用Apache实现禁止图片盗链
PHP编程中常用的三则技巧
PHP制作的网站意见在线反馈表
大型Web需求解决方案 PHP定位突出
PHP实例:精确到每一秒钟的在线人数显示代码
实用:动态网页制作技术PHP的十个应用技巧
常见php页面漏洞分析及相关问题解决
PHP和MYSQL制作动态网站开发经验之谈

使用PHP 5.0 轻松解析XML文档(3)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 26 ::
收藏到网摘: n/a

文件:SimpleDocumentRoot.php

<?php/** *========================================================= * * @author hahawen(大龄青年) * @since 2004-12-04 * @copyright Copyright (c) 2004, NxCoder Group * *========================================================= *//** * class SimpleDocumentRoot * xml root class, include values/attributes/subnodes. * all this pachage's is work for xml file, and method is action as DOM. * * @package SmartWeb.common.xml * @version 1.0 */class SimpleDocumentRoot extends SimpleDocumentBase{ private $prefixStr = '<?xml version="1.0" encoding="utf-8" ?>'; private $nodeLists = array(); function __construct($nodeTag) { parent::__construct($nodeTag); } public function createNodeObject($pNodeId, $name, $attributes) { $seq = sizeof($this->nodeLists); $tmpObject = new SimpleDocumentNode($this, $pNodeId, $name, $seq); $tmpObject->setAttributes($attributes); $this->nodeLists[$seq] = $tmpObject; return $tmpObject; } public function removeNodeById($id) { if(sizeof($this->nodeLists)==1) $this->nodeLists = array(); else unset($this->nodeLists[$id]); } public function getNodeById($id) { return $this->nodeLists[$id]; } public function createNode($name, $attributes) { return $this->createNodeByName($this, $name, $attributes, -1); } public function removeNode($name) { return $this->removeNodeByName($this, $name); } public function getNode($name=null) { return $this->getNodeByName($this, $name); } public function getSaveXml() { $prefixSpace = ""; $str = $this->prefixStr."\r\n"; return $str.parent::getSaveXml(0); }}?> 
  
  文件:SimpleDocumentNode.php

<?php/** *========================================================= * * @author hahawen(大龄青年) * @since 2004-12-04 * @copyright Copyright (c) 2004, NxCoder Group * *========================================================= *//** * class SimpleDocumentNode * xml Node class, include values/attributes/subnodes. * all this pachage's is work for xml file, and method is action as DOM. * * @package SmartWeb.common.xml * @version 1.0 */class SimpleDocumentNode extends SimpleDocumentBase{ private $seq = null; private $rootObject = null; private $pNodeId = null; function __construct($rootObject, $pNodeId, $nodeTag, $seq) { parent::__construct($nodeTag); $this->rootObject = $rootObject; $this->pNodeId = $pNodeId; $this->seq = $seq; } public function getPNodeObject() { return ($this->pNodeId==-1)? $this->rootObject: $this->rootObject->getNodeById($this->pNodeId); } public function getSeq(){ return $this->seq; } public function createNode($name, $attributes) { return $this->createNodeByName($this->rootObject, $name, $attributes, $this->getSeq()); } public function removeNode($name) { return $this->removeNodeByName($this->rootObject, $name); } public function getNode($name=null) { return $this->getNodeByName($this->rootObject, $name); }}?>