標籤: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互轉類