• 数组与xml相互转换


    数组l转换为xml的例子

    function arrayToXml($arr,$dom=0,$item=0){
        if(!$dom){
            $dom=new DOMDocument("1.0");
        }
        if(!$item){
            $item=$dom->createElement("root");
            $dom->appendChild($item);
        }
        foreach ($arr as $key => $val) {
            $itemx=$dom->createElement(is_string($key)?$key:"item");
            $item->appendChild($itemx);
            if(!is_array($val)){
                $text=$dom->createTextNode($val);
                $itemx->appendChild($text);
            }else{
                arrayToXml($val,$dom,$itemx);
            }
        }
        return $dom->saveXML();
    }
    // $arr = array();
    // $arr['user'] = '小明';
    // $arr['age'] = 20;
    // $arr['sexy'] = '女';
    // echo '数组转xml第一种:'.arrayToXml($arr);
    // echo "</br>";
    function arrayToXml2($arr){
        $xml="<xml>";
        foreach($arr as $key=>$val){
            if(is_array($val)){
                $xml.="<".$key.">".arrayToXml($val)."</".$key.">";
                // <xml><$key><$val></$key></xml>
            }else{
                $xml.="<".$key.">".$val."</".$key.">";
                // <xml><$key><$val></$key></xml>
            }
        }
        $xml.="</xml>";
        return $xml;
    }
    // $arr = array();
    // $arr['user'] = '小明';
    // $arr['age'] = 20;
    // $arr['sexy'] = '男';
    // echo '数组转xml第二种:'.arrayToXml2($arr);

    下面是xml转为数组

    // xml转array
    function xmlToArray($xml){
        libxml_disable_entity_loader(true);
      //simplexml_load_string 转换形式良好的 XML 字符串为 SimpleXMLElement 对象,然后输出对象的键和元素
    $xmlstring=simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
      // json_decode接受一个 JSON 编码的字符串并且把它转换为 PHP 变量
        // json_encode返回字符串,包含了 value 值 JSON 形式的表示。
    $val=json_decode(json_encode($xmlstring),true); return $val; } $xmlstring='<root><user>小明</user><age>100</age></root>'; $arr=xmlToArray($xmlstring); print_r($arr);//Array ( [user] => 小明 [age] => 100 )

    综合例子

    $arr = array();
    $arr['user']='小明'; 
    $arr['age']=20;
    $arr['fam']=array('姐姐'=>22,'弟弟'=>18,'哥哥'=>array('儿子'=>8,'女儿'=>6));
    $arr['date']='2016-06-01';
    $result = arrayToXml($arr); 
    var_dump($result);//转化为$xmlstring
    $xmlstring = '<root><user>小明</user><age>20</age><fam><姐姐>22</姐姐><弟弟>18</弟弟><哥哥><儿子>8</儿子><女儿>6</女儿></哥哥></fam><date>2016-06-01</date></root>'; 
    $arr = xmlToArray($xmlstring);
    var_dump($arr);//结果是二维数组

    xml www.runoob.com/xml/xml-tutorial.html

    json-decode php.net/manual/zh/function.json-decode.php

    json_encode php.net/manual/zh/function.json-encode.php

    simplexml_load_string www.runoob.com/php/func-simplexml-load-string.html

  • 相关阅读:
    NPTL 线程同步方式
    mysql事物处理
    DHCP服务器-DNS服务器-Samba服务器
    NTP服务器
    wsgiref 源代码分析
    集群负载均衡LVS
    百万数据查询优化技巧三十则
    Shell 基本运算符
    Shell 数组
    Shell 传递参数
  • 原文地址:https://www.cnblogs.com/aten/p/8633307.html
Copyright © 2020-2023  润新知