třída ArrayToXML
{
/ **
* Hlavní funkce pro konverzi do XML dokumentu.
* Překročte do multi dimenzionální pole a to recrusively prochází a hromadí se XML dokument.
*
* @ Param array $ data
* @ Param string $ rootNodeName - to, co chcete kořenový uzel být - defaultsto údaje.
* @ Param SimpleXMLElement $ xml - by měl být používán rekurzivně
* @ Return string XML
* /
public static funkce toXml ($ data, $ rootNodeName = 'data', $ xml = null)
{
/ / Vypnout režim kompatibility jako jednoduchý XML vyvolá rozviklaný, pokud tomu tak není.
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 />");
}
/ / Procházet data prošel dovnitř
foreach ($ data as $ key => $ value)
{
/ / Bez numerických kláves v naší xml, prosím!
if (funkci is_numeric ($ key))
{
/ / Aby řetězec klíč ...
$ Key = "unknownNode_". (String) $ key;
}
/ / Nahradit vše, co nebylo alfanumerický
$ Key = preg_replace ('/ [^ az] / i ",", $ key);
/ / Pokud je další pole našel recrusively volání této funkce
if (is_array ($ value))
{
$ Node = $ xml-> addChild ($ key);
/ / Recrusive volání.
ArrayToXML :: toXml ($ value, $ rootNodeName, $ node);
}
jiný
{
/ / Přidá jeden uzel.
Kč htmlentities hodnota = ($ value);
$ Xml-> addChild ($ key, $ value);
}
}
/ / Složit zpět jako řetězec. nebo jednoduchý objekt XML, pokud chcete!
return $ xml-> asXML ();
}
}













































