xml和数组互转

Posted 笑笑别人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xml和数组互转相关的知识,希望对你有一定的参考价值。

/**
     * 输出xml字符
     * @param   $params     参数名称
     * return   string      返回组装的xml
     **/
    public function data_to_xml( $params ){
        if(!is_array($params)|| count($params) <= 0)
        {
            return false;
        }
        $xml = "<xml>";
        foreach ($params as $key=>$val)
        {
            if (is_numeric($val)){
                $xml.="<".$key.">".$val."</".$key.">";
            }else{
                $xml.="<".$key."><![CDATA[".$val."]]></".$key.">";
            }
        }
        $xml.="</xml>";
        return $xml;
    }
    /**
     * 将xml转为array
     * @param string $xml
     * return array
     */
    public function xml_to_data($xml){
        if(!$xml){
            return false;
        }
        //将XML转为array
        //禁止引用外部xml实体
        libxml_disable_entity_loader(true);
        $data = json_decode(json_encode(simplexml_load_string($xml, ‘SimpleXMLElement‘, LIBXML_NOCDATA)), true);
        return $data;
    }

 

以上是关于xml和数组互转的主要内容,如果未能解决你的问题,请参考以下文章

PHP原生xml和数组互转(微信支付签名算法)

Base64和byte[]数组互转的两种方式

Linq操作XML生成XML,实体生成XML和互转

XML和对象属性互转的基类

JSON字符串和java对象的互转

[转]解析json:与array,list,map,bean,xml相互转化