clase ArrayToXML
{
/ **
* A principal función para converter a un documento XML.
* Pase nun array multi dimensional e este recrusively percorre e constrúese un documento XML.
*
* @ Param array $ data
* @ Param cadea rootNodeName $ - o que quere que o nó de raíz para - datos defaultsto.
* @ Param SimpleXMLElement $ xml - só debe ser usado recursivamente
* @ Return cadea XML
* /
ToXml public static function ($ data, $ rootNodeName = 'datos', $ xml = null)
{
/ / Desactivar o modo de compatibilidade como xml simple lanza unha cambaleante se non fai.
if (ini_get ('zend.ze1_compatibility_mode') == 1)
{
ini_set ('zend.ze1_compatibility_mode', 0);
}
if ($ xml == null)
{
$ XML = simplexml_load_string ("<xml version ='encoding =''1 .0 utf-8'?> <RootNodeName $ />");
}
/ / Bucle a través dos datos pasados dentro
foreach ($ data as $ key => $ value)
{
/ / Non hai teclas de números no noso xml, por favor!
if (is_numeric ($ key))
{
/ / Facer secuencia de clave ...
$ Key = "unknownNode_". (Cadea) $ key;
}
/ / Substituír algo non alfa numérico
$ Key = preg_replace ('/ [^ az] / i', ", $ key);
/ / Se hai outra matriz atopou recrusively chamar esta función
if (is_array ($ valor))
{
$ Node = $ xml-> addChild ($ clave);
/ / Recrusive chamada.
ArrayToXML :: ToXml ($ value, $ rootNodeName, $ node);
}
outro
{
/ / Engade único nodo.
R $ htmlentities valor = ($ valor);
$ XML-> addChild ($ key, $ value);
}
}
/ / Pasa cara atrás como cadea. ou obxecto xml simple, se quere!
return $ xml-> asXML ();
}
}













































