Conversia PHP Array la obiect XML XML sau simplă

clasa ArrayToXML

{

/ **

* Functia principala pentru convertirea la un document XML.

* Se trece într-o gamă dimensională şi de mai multe bucle prin acest recrusively şi construieşte un document XML.

*

* @ Param array $ data

* @ Param string $ rootNodeName - ceea ce vrei nod rădăcină de a fi - date defaultsto.

* @ Param $ SimpleXMLElement XML - ar trebui să fie utilizat numai recursiv
* @ Return string XML

* /

funcţiei publice toXml statice ($ date, $ rootNodeName = "date", $ xml = null)

{

/ / Dezactiva modul de compatibilitate la fel de simplu XML aruncă o instabil, dacă nu faci.

în cazul în care (ini_get ("zend.ze1_compatibility_mode") == 1)

{

ini_set ("zend.ze1_compatibility_mode ', 0);

}

if ($ xml == null)

{

$ Xml = simplexml_load_string ("<XML versiunea 0.0 = '1 'encoding =" UTF-8 "?> <$ RootNodeName />");

}

/ / Bucla prin intermediul datelor trecut inch

foreach ($ date de la $ cheie => $ valoare)

{

/ / Nu tastele numerice în XML nostru vă rog!

în cazul în care (is_numeric ($ cheie))

{

/ / Face string-cheie ...

$ Cheie = "unknownNode_". (String) $ cheie;

}

/ / Înlocuiţi nimic nu alfa numeric

$ Cheie = preg_replace ("/ [^ az] / i", ", $ cheie);

/ / Dacă există un alt tablou găsit recrusively apela această funcţie

în cazul în care (is_array ($ valoare))

{

Nod $ = $ xml-> addChild ($ cheie);

/ / Recrusive apel.

ArrayToXML :: toXml ($ valoare, $ rootNodeName, $ nod);

}

altfel

{

/ / Adauga singur nod.

= Valoarea de $ htmlentities ($ valoare);

$ Xml-> addChild ($ cheie, $ valoare);

}

}

/ / Treci înapoi în şir. sau simplu obiect XML, dacă doriţi!

a reveni $ xml-> asXML ();

}

}

Puteţi lăsa un răspuns , sau trackback de la site-ul tau.

Lasă un Răspuns

Trebuie să fi conectat pentru a posta un comentariu.