php數組與xml互轉類
阿新 • • 發佈:2018-06-09
php數組與xml互轉類代碼:
測試:
輸出:
/** * @desc:xml與array互轉 * @author [Lee] <[<[email protected]>]> * @property * data 傳入的數據 * @method * arraytoxml 數組轉xml 參數:data 返回:xml * arraytoxml xml轉數組 參數:xml 返回:data */ class xmlarray{ private $data; # 傳入數據 /* @desc:內部方法 遞歸轉換數組成xml格式 @param data 傳入的數組 @return str 返回的xml身體部分 */ private function change($data) { $str=""; foreach($data as $k=>$v){ $str .="<".$k.">"; if(is_array($v) || is_object($v)){ $str .= $this->change($v); }else{ $str .=$v; } $str .="</".$k.">"; } return $str; } /* @desc:構造方法,實例化數據 @param data 傳入的數據 */ public function __construct($data){ $this->data = $data; } /* @desc:數組轉xml @return xml */ public function arraytoxml() { $xml =‘<!--xml version="1.0" encoding="utf8" -->‘; $xml .= $this->change($this->data); return $xml; } /* @desc:xml轉數組 @return arr */ public function xmltoarray(){ $obj = simplexml_load_string($this->data, ‘SimpleXMLElement‘, LIBXML_NOCDATA); $json = json_encode($obj); $arr = json_decode($json, true); return $arr; } }
$str = ‘<!--xml version="1.0" encoding="utf8" --><document><name>lee</name><sex>male</sex></document>‘;
$xmlarray = new xmlarray($str);
$ret = $xmlarray->xmltoarray();
var_dump($ret);
array(2) { ["name"]=> string(3) "lee" ["sex"]=> string(4) "male" }
php數組與xml互轉類