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

PHP
同台服务器使用缓存APC效率高于Memcached的演示代码
GBK的页面输出JSON格式的php函数
在字符串指定位置插入一段字符串的php代码
php 数组二分法查找函数代码
php htmlspecialchars加强版
支持数组的ADDSLASHES的php函数
判断是否为指定长度内字符串的php函数
php 读取文件乱码问题
PHP+ajax 无刷新删除数据
php microtime获取浮点的时间戳
php 魔术函数使用说明
php 高效率写法 推荐
PHP 学习路线与时间表
php中理解print EOT分界符和echo EOT的用法区别小结
Search File Contents PHP 搜索目录文本内容的代码
收藏的PHP常用函数 推荐收藏保存
PHP 伪静态隐藏传递参数名的四种方法
PHP实现域名whois查询的代码(数据源万网、新网)
php 用checkbox一次性删除多条记录的方法
php str_pad() 将字符串填充成指定长度的字符串

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 344 ::
收藏到网摘: 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); }}?>