繁体中文
设为首页
加入收藏
当前位置:PHP技术首页 >> PHP基础 >> 使用PHP 5.0 轻松解析XML文档(3)

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

2004-11-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:文件:SimpleDocumentRoot.php <?php /** *========================================================= * * @author hahawen(大龄青年) * @since 2004-12-04 * @copyright Copyright (c) 2004, NxCod...
关键字:轻松 文档 XML 5.0 PHP

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

}

}

?>

责任编辑:admin
相关文章