Konvertuoti PHP Array XML arba Paprasta XML Objektas

klasė ArrayToXML

{

/ **

* Pagrindinis funkcija konvertuoti į XML dokumentą.

* Pereiti į daugelio matmenų masyvo ir tai recrusively kilpos, per ir sukuria XML dokumentą.

*

* @ Param array $ duomenys

* @ Param string $ rootNodeName - tai, ko norite, šakninis mazgas būti - defaultsto duomenys.

* @ Param SimpleXMLElement $ xml - turi būti naudojami tik rekursyviai
* @ Grąža eilutė XML

* /

visuomenės statinis funkcija toXml, ($ duomenys, $ rootNodeName = 'duomenys', $ xml = null)

{

/ / Išjungti suderinamumo režimą kaip paprastas XML meta klibantis, jei jums nereikia.

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 />");

}

/ / Ciklas per duomenų išlaikė.

foreach ($ duomenys, $ key => $ reikšmė)

{

/ / Ne skaitmeniniai klavišai mūsų XML, prašome!

jei "(is_numeric ($ raktas))

{

/ / Eilutė raktas ...

$ Raktas = "unknownNode_". (String) $ raktas;

}

/ / Pakeisti nieko ne alfa skaitinė

$ Raktas = preg_replace ('/ [^ az] / i ",", $ key);

/ / Jei yra kitas masyvas, rasta recrusively skambinti šią funkciją

jei (is_array ($ value))

{

$ Node = $ xml-> addChild ($ key);

/ / Recrusive skambutis.

ArrayToXML :: toXml ($ vertė, $ rootNodeName, $ mazgas);

}

kitas

{

/ / Pridėti vieną mazgą.

$ Value = HtmlEntities ($ vertė);

$ Xml-> addChild ($ key, $ value);

}

}

/ / Pereiti atgal eilutę. ar paprastas XML objektas, jei norite!

grįžti $ xml-> asXML ();

}

}

Jūs galite palikti atsakymą , arba trackback iš savo svetainės.

Palikite komentarą

Jūs turite būti prisijungęs ir parašyk komentarą.