* example 讀取資料:
*
* $xml = new xml("dbase.xml",'table');
*
* $data=$xml->xml_fetch_array();
*
* echo "
";
*
* print_r($data);
*
class xml
{
var $dbase; //資料庫,要讀取的XML檔案
var $dbname; //資料庫名稱,頂層元素,與資料庫檔案名稱一致
var $dbtable; //資料表,要取得的節點
var $parser; //剖析器
var $vals; //屬性
var $index; //索引
var $dbtable_array;//節點數組
var $array; //下級節點的數組
var $result; //返回的結果
var $querys;
function xml($dbase,$dbtable)
{
$this->dbase=$dbase;
$this->dbname=substr($dbase,strrpos($dbase,"/") 1,-4);
$this->dbtable=$dbtable;
$data=$this->ReadXml($this->dbase);
if(!$data){
die("無法讀取 $this->dbname.xml");
}
$this->parser = xml_parser_create();
xml_parser_set_option($this->parser,XML_OPTION_CASE_FOLDING,0);
xml_parser_set_option($this->parser,XML_OPTION_SKIP_WHITE,1);
xml_parse_into_struct($this->parser,$data,$this->vals,$this->index);
xml_parser_free($this->parser);
//遍曆索引,篩選出要取值的節點 節點名:$dbtable
foreach ($this->index as $key=>$val) {
if ($key == $this->dbtable) {
//取得節點數組
$this->dbtable_array = $val;
} else {
continue;
}
}
for ($i=0; $i < count($this->dbtable_array); $i =2) {
$offset = $this->dbtable_array[$i] 1;
$len = $this->dbtable_array[$i 1] - $offset;
//array_slice() 返回根據 offset 和 length 參數所指定的 array 數組中的一段序列。
//所取節點下級數組
$value=array_slice($this->vals,$offset,$len);
//取得有效數組,合并為結果數組
$this->array[]=$this->parseEFF($value);
}
return true;
}
//將XML檔案讀入並返回字串http://www.bkjia.com/PHPjc/631415.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/631415.htmlTechArticle?php * example 讀取資料: * * $xml = new xml(dbase.xml,'table'); * * $data=$xml-xml_fetch_array(); * * echo pre style=font-size:12px;; * * print_r($data); * class xml { var $d...