类ArrayToXML
{
/ **
*转换为XML文档的主要功能。
*通过在一个多维数组,这recrusively遍历,并建立一个XML文档。
*
* @参数数组$数据
* @参数字符串$ rootNodeName - 你想要什么,根节点 - defaultsto数据。
* @参数的SimpleXMLElement美元XML - 应该只用于递归
* @返回字符串的XML
* /
公共静态函数的toXml(元数据,元rootNodeName ='数据',$ XML = NULL)
{
/ /关闭兼容模式下,简单的XML抛出一个摇摇晃晃的,如果你不这样做。
(ini_get(“zend.ze1_compatibility_mode)== 1)
{
函数ini_set(“zend.ze1_compatibility_mode',0);
}
($ XML == NULL)
{
$ XML = simplexml_load_string(“<XML版本= '1 .0'编码='UTF-8”?> <$ rootNodeName />“)的;
}
/ /通过循环的数据传入
的foreach($数据作为$ => $值)
{
在我们的XML / /没有数字键,请!
(is_numeric($))
{
/ /字符串键...
美元关键=“unknownNode_”。 (字符串)的关键;
}
/ /不会取代任何字母和数字
$键= preg_replace函数('/ [^ AZ] / I“,”美元的关键);
/ /如果有另一个数组中找到recrusively调用这个函数
如果(IS_ARRAY(值))
{
元节点= $ XML->调用addChild(键);
/ / recrusive的呼叫。
ArrayToXML ::的toXml(美元价值,$ rootNodeName,为节点);
}
其他
{
/ /添加一个节点。
$值=ヶ辆(价值);
XML->调用addChild($键,值);
}
}
/ /传回字串。 或简单的XML对象,如果你想!
返回XML - > asXML();
}
}













































