美文网首页
php多维数组转xml

php多维数组转xml

作者: 我的楼兰0909 | 来源:发表于2018-12-08 14:15 被阅读0次
    之前写的php生成xml的内容还不够全面,现在补充一个自己写的php多维数组转xml的小例子,当然还不够全面,大家可根据需求做相应调整直接上代码:
    
    
    <?php  
    $doc = new DOMDocument('1.0','utf-8');//声明版本和编码
    $doc -> formatOutput = true;//格式xml输出 有换行什么的
    $root = $doc -> createElement('root');//加根标签
    //随便定一个数组
    $variable=array(
         '0'=>array(
               '0'=>array(
                   'id'=>'18',
                   'name'=>'keke',
                   'address'=>'江西',
                   'age'=>'26',
                   'sex'=>'男'
                ),
               '1'=>array(
                   'id'=>'19',
                   'name'=>'kehh',
                   'address'=>'湖南',
                   'age'=>'27',
                   'sex'=>'女'
                ),
               '2'=>array(
                   'id'=>'15',
                   'name'=>'xiaoming',
                   'address'=>'湖北',
                   'age'=>'25',
                   'sex'=>'男'
                )  
    
             ),
         '1'=>array(
               '0'=>array(
                   'id'=>'66',
                   'name'=>'DDD',
                   'address'=>'江西',
                   'age'=>'26',
                   'sex'=>'男'
                ),
               '1'=>array(
                   'id'=>'99',
                   'name'=>'SFSDF',
                   'address'=>'湖南',
                   'age'=>'27',
                   'sex'=>'女'
                ),
               '2'=>array(
                   'id'=>'77',
                   'name'=>'VBCX',
                   'address'=>'湖北',
                   'age'=>'25',
                   'sex'=>'男'
                )   
             )
      );
    //核心代码,此处把数据直接属性名,属性值放到标签内,如需
    //把内容放在标签中间也是一样设置,可看我上一篇
    foreach ($variable as $key => $value) { //循环第一层标签
         $goods[$key] = $doc -> createElement('Goods'); //创建第一层标签名字随便取的
         foreach($value as $k=>$v){ //循环第二层
            $rule[$k] = $doc->createElement('Rule');//创建第二层标签
            $goods[$key]->appendChild($rule[$k]);//把第二层标签添加到第一层
            foreach($v as $mm=>$vv) {  //循环第三层
               $IE[$mm] = $doc->createElement('IE');//创建第三层标签
               $rule[$k]->appendChild($IE[$mm]);//把第三层标签添加到第二层
    
               $attr[$mm] = $doc->createAttribute($mm);//创建第三层标签的属性
               $con[$mm] = $doc->createTextNode($vv);//创建第三层标签的属性内容
    
               $attr[$mm]->appendChild($con[$mm]); //把第三层标签的属性内容赋给属性
               $IE[$mm]->appendChild($attr[$mm]); //把第三层标签属性添加的对应的第三层标签 
            }
         }
         $root -> appendChild($goods[$key]);//把goods层添加到根标签
    }
    
    $doc -> appendChild($root);//把root标签作为根标签
    $doc -> save('xml/001.xml');//保存生成xml文件
    $time = date('Y-m-d H:i:s',time());
    echo $doc?'成功'.$time:'失败'.$time;
    效果:
    <?xml version="1.0" encoding="utf-8"?>
    

    相关文章

      网友评论

          本文标题:php多维数组转xml

          本文链接:https://www.haomeiwen.com/subject/zdyzcqtx.html