用 PHP5 轻松解析 XML(6)

             {
                 $str .= "$prefixSpace\t<$key";

                 $tmpStr = $value;
             }
             $tmpStr = trim(trim($tmpStr, "\r\n"));

             $str .= ($tmpStr===null || $tmpStr==="")? " />\r\n": ">$tmpStr</$key>\r\n";

         }

         foreach($this->getNode() as $node)
         $str .= $node->getSaveXml($level+1)."\r\n";


         $str .= "$prefixSpace</$this->nodeTag>";

         return $str;
     }

 

     function __destruct()
     {
         unset($this->nodes, $this->attributes, $this->values);

     }

 }
?>

 

文件: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 = '';
    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;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3453d9ab26a2444cbe11eab65ea43358.html