怎么在PHP中利用数组生成一个XML格式的数据

  介绍

怎么在PHP中利用数组生成一个XML格式的数据?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

类库代码:MakeXML。php:

& lt; php ?/*   *,从数组生成XML文件   */class  Fwcms_MakeXML   {   private 才能;static  $实例;   private 才能;function  __construct () {}   ,/* *   ,,*,单件模式调用本类   ,,*   ,,*,@return 单件模式   ,,*/public 才能static  function  getInstance (), {   ,,,if (!收取(self::实例),{   ,,,,,自我:instance =, new  Fwcms_MakeXML ();   ,,,}   ,,,return 自我:实例;   ,,}   ,/* *   ,,*,获取XML字串   ,,*,@param  array 美元;用于生成XML的数组,数组可以是二维或多维的,其中的第一个元素作为XML元素名   ,,*,@param  xslName 美元;XSL文件名(如:“http://www.xxx.com/templates/normal/xslname.xsl")   ,,*,@return  XMLString 美元;输出XML字符串   ,,*/public 才能;function  getXML(数组,xslName美元=啊?{   ,,,XMLString 美元;=,& # 39;& lt; ? xml  version=?.0“,编码=皍tf-8" ?祝辞& # 39;;   ,,,如果($ xslName !=啊?   ,,,,,XMLString美元。=& # 39;& lt; ? xml-stylesheet 类型=拔谋?xsl", href=https://www.yisu.com/zixun/皒slName美元。”?> ';   XMLString美元。=$ this ->(数组);   返回XMLString美元;   }/*   *递归生成XML字串   */私有函数使美元(数组)   {   $ XMLString=?   美元haveRightBracket=FALSE;   如果收取($阵列[' elementName '])) {   数组$ elementName=array_shift($);//数组的第一个元素为XML元素名   其他}{   美元elementName=钅俊?//如果没有指定则元素名为项目   }   XMLString=' <'。elementName美元。' ';   如果(is_array(数组)美元){   foreach(数组paramKey美元=> nodeParam美元){   如果(! is_array (nodeParam美元)){//如果不是一个下级元素,那就是元素的参数   XMLString美元。=$ paramKey nodeParam美元“=薄薄!啊薄?   其他}{   如果(! $ haveRightBracket) {   XMLString美元。='> ';   美元haveRightBracket=TRUE;   }//如果是下级元素,则追加元素   XMLString美元。=$ this -> (nodeParam美元);   }   }   }   如果(! $ haveRightBracket) {   XMLString美元。='> ';   美元haveRightBracket=TRUE;   }   XMLString美元。=' “;//该元素处理结束   返回XMLString美元;   }/* *   *将字串保存到文件   * @param $ fileName文件名   * @param XMLString美元已经生成的XML字串   */公共函数saveToFile(文件名,XMLString美元)   {   如果(! $处理=fopen ($ fileName ' w '))   {   返回错误;   }   如果(!写入文件(手柄,XMLString美元))   {   返回错误;   }   返回TRUE;   }/* *   *直接通过数组生成XML文件   */公共函数编写(文件名,数组,美元xslName美元="){   $ XMLString=$ this -> getXML(数组,xslName美元);   $=$ this ->结果saveToFile(文件名,XMLString美元);   返回结果美元;   }   }

测试代码testXML。php:

& lt; php ?   require_once  & # 39; MakeXML.php& # 39;;   $ xml=Fwcms_MakeXML: getInstance ();//$ xml=new  Fwcms_MakeXML ();   $数组=阵列(   ,,,& # 39;elementname # 39;=祝辞& # 39;数据# 39;//XML节点名,如不定义则默认为项目   ,,,& # 39;test1 # 39;=祝辞阵列(   ,,,,,//不定义本节点名   ,,,,,//& # 39;elementname # 39;=祝辞& # 39;item1& # 39;   ,,,,,& # 39;id # 39;=祝辞;1,   ,,,,,& # 39;标题# 39;=祝辞& # 39;try1& # 39;   ,,,),   ,,,& # 39;test2 # 39;=祝辞阵列(   ,,,,,& # 39;elementname # 39;=祝辞& # 39;第二条# 39;   ,,,,,& # 39;id # 39;=祝辞;2,//参数   ,,,,,& # 39;标题# 39;=祝辞& # 39;try2& # 39;//参数   ,,,,,& # 39;test2.2& # 39;=祝辞阵列(   ,,,,,,,//XML子节点,必须放在所有参数之后,后面不可以再跟参数   ,,,,,,,& # 39;elementname # 39;=祝辞& # 39;item2.2& # 39;   ,,,,,,,& # 39;id # 39;=在2.2,   ,,,,,,,& # 39;标题# 39;=祝辞& # 39;try2.2& # 39;   ,,,,,)   ,,,),   ,,,& # 39;test3 # 39;=祝辞阵列(   ,,,,,& # 39;elementname # 39;=祝辞& # 39;item3& # 39;   ,,,,,& # 39;id # 39;=祝辞;3,   ,,,,,& # 39;标题# 39;=祝辞& # 39;try3& # 39;   ,,,),   ,,,& # 39;test4 # 39;=祝辞阵列(   ,,,,,& # 39;elementname # 39;=祝辞& # 39;item4& # 39;   ,,,,,& # 39;id # 39;=祝辞;4,   ,,,,,& # 39;标题# 39;=祝辞& # 39;try4& # 39;   ,,,),   ,,,& # 39;test5& # 39;=祝辞阵列(   ,,,,,//不定义本节点名   ,,,,,//& # 39;elementname # 39;=祝辞& # 39;item5& # 39;   ,,,,,& # 39;id # 39;=祝辞;5,   ,,,,,& # 39;标题# 39;=祝辞& # 39;try5& # 39;   ,,,)   ,,);   $=$ xml字符串→getXML(数组)美元;//由数组生成xml字串   $ xml→saveToFile (& # 39; test.xml& # 39;,美元字符串);//把生成的xml字串写入到文件   $ xml→写(& # 39;test2 . xml # 39;,数组,美元& # 39;test2.xsl& # 39;);//直接从数组中获取字串生成文件   null   null   null

怎么在PHP中利用数组生成一个XML格式的数据