更新:fixed Array2xml 1.0 的一个bug(移去item标签).
CODE:[Copy to clipboard]<?php
/**
@name:Array2xml
@version:1.1
@date:2006-1-25
@license:
http://www.gnu.org/copyleft/gpl.html GNU/GPL
@author:axgle <
axgle@126.com>
Array2xml is Free Software
*/
header("content-type:text/xml");
$arr=array
('html ver="1.1"'=>
array('head'=>array('title'=>'this is title'),
'body'=>array('p'=>array('this is p1','this is p2') )
)
);
$ax=new array2xml($arr);
echo $ax->getXML();
class array2xml {
var $xml;
function array2xml($array,$encoding='gb2312') {
$this->xml='<?xml version="1.0" encoding="'.$encoding.'"?>';
$this->xml.=$this->_array2xml($array);
}
function getXml() {
return $this->xml;
}
function _array2xml($array) {
foreach($array as $key=>$val) {
$num=is_numeric($key);
$num||$xml.="<$key>";
if(is_array($val)) {
$subNum=is_numeric(key($val));
if($subNum) {
$mergeVal=implode("</$key><$key>",$val);
$xml.=$mergeVal."</$key>";
continue;
}
$xml.=$this->_array2xml($val);
} else {
$xml.=$val;
}
list($key,)=explode(' ',$key);
$num||$xml.="</$key>";
}
return $xml;
}
}
?>