php數(shù)組與xml互轉(zhuǎn)類

  1. 代碼:
    /**
    * @desc:xml與array互轉(zhuǎn)
    * @author [Lee] <[<complet@163.com>]>
    * @property
    *      data 傳入的數(shù)據(jù)
    * @method
    *      arraytoxml  數(shù)組轉(zhuǎn)xml  參數(shù):data 返回:xml
    *      arraytoxml  xml轉(zhuǎn)數(shù)組  參數(shù):xml  返回:data
    */
    class xmlarray{
    private $data;  #  傳入數(shù)據(jù)
    /*
     @desc:內(nèi)部方法 遞歸轉(zhuǎn)換數(shù)組成xml格式
     @param data 傳入的數(shù)組
     @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:構(gòu)造方法,實例化數(shù)據(jù)
     @param data 傳入的數(shù)據(jù)
     */
    public function __construct($data){
        $this->data = $data;
    }
    /*
     @desc:數(shù)組轉(zhuǎn)xml
     @return xml
     */
    public function arraytoxml() {  
        $xml  ='<!--xml version="1.0" encoding="utf8" -->';
        $xml .= $this->change($this->data);
        return $xml;
    }
    /*
     @desc:xml轉(zhuǎn)數(shù)組
     @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;
    }
    }
  2. 測試:
    $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);
  3. 輸出:
    array(2) {
    ["name"]=>
    string(3) "lee"
    ["sex"]=>
    string(4) "male"
    }

網(wǎng)頁名稱:php數(shù)組與xml互轉(zhuǎn)類
文章地址:http://muchs.cn/article40/gespeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、軟件開發(fā)品牌網(wǎng)站設(shè)計、網(wǎng)站內(nèi)鏈、建站公司商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營