由于现在有个项目,需要做接口,必须使用PHP成成XML才能实现对接所以请教大家,如何使用PHP生成XML文件。

解决方案 »

  1.   

    直接输出xml文件里面的内容就可以了。都是文本而已
      

  2.   

    这是PHP中典型的文件类操作,包括创建、打开、写入、保存等,具体可参考php manual
    你只要把XML不变的部分做成模板,然后用PHP变量替换改变的部分即可
      

  3.   

    把数组转化成一个xml字符串--php 
    一:代码: <?php
     
    //************************test***************************
    $vararray   =   array(   
                              "name"     =>   array("alen", "andy", "tom"),
                              "cuntry"   => array("china","japan","english"),
                              "number"   => array(1,2,3, array(11,22,33))
                          );   
    $pp = toXml($vararray,"gb2312");
    echo $pp;/** 
    *把给定的数组转化成一个xml字符串
    *
    * @author [[email protected]]
    * @param  $arrays  :要转换的数组
    * @param  $encoding:xml文件的编码
    * @return string 
    */ 
    function toXml($arrays,$encoding='')
    {
     // 数组检测
     if(!is_array($arrays))
     {
      echo "<font color='red'>$arrays is not a array!</font>";
      return false;
     }
     $xmlstr = '';
     // xml文件编码设置
     if($encoding=='')
     {
      $xmlstr  .='<?xml version="1.0" encoding="utf-8" ?>';
     }
     else
     {
      $xmlstr  .='<?xml version="1.0" encoding="';
      $xmlstr  .=$encoding;
      $xmlstr  .='" ?>';
     }
     $xmlstr .='<root>';
     // 调用遍历数组函数
     $xmlstr .= traversal($arrays);
     $xmlstr .='</root>';
     return $xmlstr;
    }/** 
    *遍历数组,成一个xml片段字符串
    *
    * @author [[email protected]]
    * @param  $arr   :要遍历的数组
    * @return string 
    */  
    function traversal($arr)
    {
      $arrString = '';
      while($newArr = each($arr))
      {
         $arrString .= "<$newArr[0]>";
         if(is_array($newArr[1]))
         {
            $tempString = traversal($newArr[1]);
            $arrString .= $tempString;
         }
         else
         {
            $arrString .= "$newArr[1]";
         }
        $arrString .= "</$newArr[0]>";
      }
      return $arrString;
    }
    ?>二:执行的结果:(结果已经手动调整,便于观察) <?xml version="1.0" encoding="gb2312" ?>
    <root>
    <name>
    <0>alen</0>
    <1>andy</1>
    <2>tom</2>
    </name><cuntry>
    <0>china</0>
    <1>japan</1>
    <2>english</2>
    </cuntry><number>
    <0>1</0>
    <1>2</1>
    <2>3</2>
    <3>
     <0>11</0>
     <1>22</1>
     <2>33</2>
    </3>
    </number></root>三:备注:注意:xml的标签是以下划线和字母开头的,且不能又xml字样的字符串!
      

  4.   

    给你提供一个例子http://www.bitfolge.de/rsscreator-en.html
    这是用来生成rss种子的xml类,你可以参考一下。