classe ArrayToXML
{
/ **
* A principal função para converter para um documento XML.
* Passe em um array multi dimensional e este recrusively percorre e constrói-se um documento XML.
*
* @ Param array $ data
* @ Param cadeia rootNodeName $ - o que você quer que o nó de raiz para ser - dados defaultsto.
* @ Param SimpleXMLElement $ xml - só deve ser usado recursivamente
* @ Return string XML
* /
ToXml public static function ($ data, $ rootNodeName = 'dados', $ xml = null)
{
/ / Desativar o modo de compatibilidade como xml simples lança uma cambaleante se você não faz.
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 $ />");
}
/ / Loop através dos dados passados dentro
foreach ($ data as $ key => $ value)
{
/ / Sem teclas numéricas no nosso xml, por favor!
if (is_numeric ($ key))
{
/ / Fazer seqüência de chave ...
$ Key = "unknownNode_". (String) $ key;
}
/ / Substituir qualquer coisa não alfa numérico
$ Key = preg_replace ('/ [^ az] / i', ", $ key);
/ / Se houver outra matriz encontrada recrusively chamar esta função
if (is_array ($ valor))
{
$ Node = $ xml-> addChild ($ chave);
/ / Recrusive chamada.
ArrayToXML :: ToXml ($ value, $ rootNodeName, $ node);
}
outro
{
/ / Adiciona único nó.
R $ htmlentities valor = ($ valor);
$ Xml-> addChild ($ key, $ value);
}
}
/ / Passa para trás como string. ou objeto xml simples, se você quiser!
return $ xml-> asXML ();
}
}













































