輕量級的xml文件生成類

2021-04-07 09:53:16 字數 3042 閱讀 5772

<?

/**

* 輕量級xml文件生成類(非dom)

* author:  q3boy

* version: v0.1 aplha

* update:  2003/9/8

* 支援element/cdata/declare/attribute/comment,可選擇是否包含換行和縮排

*/ class xml

/** 設定元素型別 */

function settypes($type)

/** 設定是否縮排換行 */

function setspace($space)

/** 設定元素屬性 */

function setattrib($name,$value='') else

} /** 新增子元素 */

function &addelement($name='',$value='')

$xml = new xml($name,$value);

$xml->setspace($this->space);

$this->value = &$xml;

return $this->value[sizeof($this->value)-1];

} /** 新增cdata資料 */

function &addcdata($name='',$value='')

$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='')

$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='')

$xml = new xml($content);

$xml->setspace($this->space);

$xml->settypes('comment');

$this->value = &$xml;

return $this->value[sizeof($this->value)-1];

} /** 返回xml文字流 */

function tostring($itm='',$layer=0)

/* xml宣告 */

for($i=0; $ideclare); $i++)

$out.="?>$br";

} /* 文件樹 */

switch($itm->type)

if(is_array($itm->value))

$out .= $tab.'name.'>'.$br;

}elseif($itm->value!='') else

break;

case 'comment':

$out .= ''.$br;

break;

} return $out;

} /** 生成xml檔案 */

function tofile($file)

/** 實體引用轉換 */

function encode($content,$type='element',$tab1='',$br='') elseif($type=='cdata')

} }

/* example */

/* 物件初始化 */

$xml = new xml('test');

/* 允許輸出換行/縮排 */

$xml->setspace(true);

/* 設定xml宣告 */

$d = &$xml->adddeclare('xml');

$d->setattrib("version","1.0");

/* 設定xml文件樹 */

$xml1 = &$xml->addelement('test1','test1-1');

$xml1->addelement('test2','test2-1');

$x2 = &$xml1->addelement('test3','test2-2');

$x2->setattrib("asd","1&23<>4'"23");

$xml1->addelement('test4','test2-3');

$xml->addelement('test455','taadsfa<><>fdsadest2-3');

$xml->addcomment('adsfadsf');//注釋

/* cdata資料 */

$xml->addcdata('cdname','dflkgmsglsd

f]gl

sdgl

asgl

sf"&ldgsldkfg]]>

sldf

gsdfgsd?fg>ss?d>');

$x1 = &$xml->addelement('test455');

$x1->setattrib("asd",123423);

$xml->setattrib(array("asd"=>123,'sdfgdfg'=>2341));

$xml->setattrib("asd",123423);

/* 輸出檔案 */

$xml->tofile('aaa.xml');

?>

輕量級的web server

web介面是乙個應用系統常用的介面,本文所說的輕量級的web server是指應用系統不以web訪問為主,web介面提供輔助作用,例如,修改配置等,此時,對web server的要求是程式簡單 無或者很輕的併發 能嵌入到應用中最好。linux上nginx的安裝依賴於pcre,這是乙個與perl相容的...

輕量級的 XML ORM

開發中,經常使用xml來作資料庫,涉及到對xml的操作比較頻繁。如果每次都去一步步的寫那些過程,真的是很浪費時間。經過一段時間的總結,我將xml的常用操作封裝成乙個dll,實現了對xml的增刪改查。對一般的xml開發已經夠用了。說是orm其實也有些勉強,不過操作起來還是比較方便的。下面我將演示怎麼利...

對輕量級C 日誌類的增強

對輕量級c 日誌類的增強 這是網上找到的乙個輕量級c 日誌類的實現,主要應用了singleton模式,我增加乙個函式 tmwrite 主要用來進行前面帶時間的行輸出。log.h hujinshan 2004.1.3 airforce engineering university clog clog ...