日期:2010-11-19  浏览次数:20424 次


PHP代码:--------------------------------------------------------------------------------
<?
/**
* 轻量级XML文档生成类(非dom)
* author: q3boy <q3boy@sina.com>
* version: v0.1 aplha
* update: 2003/9/8
* 支持Element/CDATA/Declare/attribute/Comment,可选择是否包含换行和缩进
*/
class xml {

/** 元素名 */
var $name;
/** 元素值 */
var $value;
/** 元素类型 */
var $type;
/** 元素属性 */
var $attrib;
/** XML声明 */
var $declare;
/** 是否缩进换行 */
var $space;

/** 构造函数 */
function xml($name='',$value='') {
$this->name = $name;
$this->value = $value;
$this->declare = array();
$this->setTypes('Element');
$this->setAttrib(array());
$this->setSpace(false);
}

/** 设置元素类型 */
function setTypes($type) {
$this->type = $type;
}

/** 设置是否缩进换行 */
function setSpace($space) {
$this->space = $space;
}

/** 设置元素属性 */
function setAttrib($name,$value='') {
if(is_array($name)) {
$this->attrib = array_merge($this->attrib,$name);
}else {
$this->attrib[$name] = $value;
}
}

/** 添加子元素 */
function &addElement($name='',$value='') {
if(!is_array($this->value)) {
$this->value = array();
}
$xml = new xml($name,$value);
$xml->setSpace($this->space);
$this->value[] = &$xml;
return $this->value[sizeof($this->value)-1];
}

/** 添加CDATA数据 */
function &addCDATA($name='',$value='') {
if(!is_array($this->value)) {
$this->value = array();
}
$xml = new xml($name,$value);
$xml->setSpace($this->space);
$xml->setTypes('CDATA');
$this->value[] = &$xml;
return $this->value[sizeof($this->value)-1];
}

/** 添加XML声明 */
function &addDeclare($name='',$value='') {
if(!is_array($this->declare)) {
$this->value = array();
}
$xml = new xml($name,$value);
$xml->setSpace($this->space);
$xml->setTypes('Declare');
$this->declare[] = &$xml;
return $this->declare[sizeof($this->value)-1];
}

/** 添加注释文本 */
function &addComment($content='') {
if(!is_array($this->value)) {
$this->value = array();
}