当前位置:中国站长下载文章中心网页编程PHP编程 → 使用PHP 5.0 轻松解析XML文档 (3)

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

减小字体 增大字体 作者:不详  来源:不详  发布时间:2006-8-14 10:20:07
     文件: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);
   }
  }
  ?>
  
  
  
  
    做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。