$doc=new DOMDocument("1.0","utf-8");  #声明文档类型 
$doc->formatOutput=true;               #设置可以输出操作 
  
#声明根节点,最好一个XML文件有个跟节点 
$root=$doc->createElement("root");    #创建节点对象实体   
$root=$doc->appendChild($root);      #把节点添加进来 
    
   # for($i=1;$i<100;$i++){  //循环生成节点,如果数据库调用出来就改这里 
    
   $info=$doc->createElement("info");  #创建节点对象实体  
   $info=$root->appendChild($info);    #把节点添加到root节点的子节点 
  
        $name_value=$doc->createAttribute("value");  #创建节点属性对象实体   
        $name_value=$info->appendChild($name_value);  #把属性添加到节点info中 
         
        $name=$doc->createElement("name");    #创建节点对象实体         
        $name=$info->appendChild($name); 
         
        $sex=$doc->createElement("sex"); 
        $sex=$info->appendChild($sex); 
         
        $name->appendChild($doc->createTextNode("MUSIC"));  #createTextNode创建内容的子节点,然后把内容添加到节点中来 
        $name_value->appendChild($doc->createTextNode("张三")); 
        $sex->appendChild($doc->createTextNode("男")); #注意要转码对于中文,因为XML默认为UTF-8格式  # } $name->appendChild($doc->createTextNode("MUSIC"));  #createTextNode创建内容的子节点,然后把内容添加到节点中来 
$name_value->appendChild($doc->createTextNode("李四")); 
        $sex->appendChild($doc->createTextNode("男")); #注意要转码对于中文,因为XML默认为UTF-8格式  # }

$name->appendChild($doc->createTextNode("MUSIC"));  #createTextNode创建内容的子节点,然后把内容添加到节点中来 
$name_value->appendChild($doc->createTextNode("刘兰")); 
        $sex->appendChild($doc->createTextNode("女")); #注意要转码对于中文,因为XML默认为UTF-8格式  # }

   $doc->save("xml.xml"); #保存路径 
   echo "生成成功。<br>"; 
如果生成的XML.XML 文档内容如下:<?xml version="1.0" encoding="utf-8"?>
<root>
  <info value="张三李四刘兰">
    <name>MUSICMUSICMUSIC</name>
    <sex>男男女</sex>
  </info>
</root>
我想要的结果:<?xml version="1.0" encoding="utf-8"?>
<root>
  <info value="MUSIC">
    <name>张三</name>
    <sex>男</sex>
  </info>
  <info value="MUSIC">
    <name>李四</name>
    <sex>男</sex>
  </info>
  <info value="MUSIC">
    <name>刘兰</name>
    <sex>女</sex>
  </info>
</root>

解决方案 »

  1.   

    <?php 
    $xml_array = array(
                0=>array('name'=>'张三','sex'=>'男'),
                1=>array('name'=>'李四','sex'=>'男'),
                2=>array('name'=>'刘兰','sex'=>'女'),
    );$doc=new DOMDocument("1.0","utf-8");  #声明文档类型 
    $doc->formatOutput=true;               #设置可以输出操作 
      
    #声明根节点,最好一个XML文件有个跟节点 
    $root=$doc->createElement("root");    #创建节点对象实体   
    $root=$doc->appendChild($root);      #把节点添加进来 
        
    foreach ($xml_array as $val){
            $info=$doc->createElement("info");  #创建节点对象实体  
            $info=$root->appendChild($info);    #把节点添加到root节点的子节点 
      
            $name_value=$doc->createAttribute("value");  #创建节点属性对象实体   
            $name_value=$info->appendChild($name_value);  #把属性添加到节点info中 
             
            $name=$doc->createElement("name");    #创建节点对象实体         
            $name=$info->appendChild($name); 
             
            $sex=$doc->createElement("sex"); 
            $sex=$info->appendChild($sex); 
             
            $name_value->appendChild($doc->createTextNode("MUSIC")); 
            $name->appendChild($doc->createTextNode($val['name']));  #createTextNode创建内容的子节点,然后把内容添加到节点中来 
            $sex->appendChild($doc->createTextNode($val['sex'])); #注意要转码对于中文,因为XML默认为UTF-8格式  # }
    }
    $doc->save("xml.xml"); #保存路径 
    echo "生成成功。<br>"; 
    ?>