classe ArrayToXML
{
/ **
* La fonction principale pour la conversion d'un document XML.
* Passez dans un tableau multidimensionnel et ce par le biais des boucles recrusively et s'accumule un document XML.
*
* @ Param array $ data
* @ Param string $ rootNodeName - ce que vous voulez le nœud racine d'être - des données defaultsto.
* @ Param SimpleXMLElement $ xml - ne devraient être utilisées de manière récursive
* @ Return une chaîne XML
* /
publique toXml fonction statique ($ data, $ rootNodeName = 'data', $ xml = null)
{
/ / Désactiver le mode de compatibilité aussi simple xml jette un bancale si vous n'avez pas.
if (ini_get ('zend.ze1_compatibility_mode') == 1)
{
ini_set ('zend.ze1_compatibility_mode', 0);
}
if ($ xml == null)
{
$ Xml = simplexml_load_string ("<xml version = '1 .0 'encoding =' UTF-8 '?> <$ RootNodeName />");
}
/ / Boucle sur les données transmises po
foreach ($ data as $ key => $ value)
{
/ / Pas de touches numériques dans notre xml s'il vous plaît!
if (is_numeric ($ key))
{
/ / Que la chaîne touche ...
$ Key = "unknownNode_". (String) $ key;
}
/ / Remplacer quoi que ce soit pas alphanumérique
$ Key = preg_replace ('/ [^ az] / i', ", $ key);
/ / S'il ya un autre tableau trouvé recrusively appeler cette fonction
if (is_array ($ valeur))
{
$ Noeud = $ xml-> addChild ($ key);
/ / Recrusive appel.
ArrayToXML :: toXml ($ valeur, $ rootNodeName, $ node);
}
d'autre
{
/ / Ajouter un seul nœud.
$ De htmlentities = valeur ($ valeur);
$ Xml-> addChild ($ cle, $ valeur);
}
}
/ / Repasse sous forme de chaîne. ou simple objet xml si vous voulez!
return $ xml-> asXML ();
}
}













































