Convertir tableau PHP à l'objet XML XML ou simple

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 ();

}

}

Vous pouvez laisser une réponse , ou trackback depuis votre propre site.

Laisser un commentaire

Vous devez être connecté pour poster un commentaire.