klasse ArrayToXML
{
/ **
* Den vigtigste funktion for at konvertere til et XML-dokument.
* Passere i en multi dimensional array og dette recrusively sløjfer igennem og opbygger et XML-dokument.
*
* @ Param array-$ data
* @ Param string $ rootNodeName - hvad du vil have roden node til at være - defaultsto data.
* @ Param SimpleXMLElement $ xml - bør kun bruges rekursivt
* @ Afkast streng XML
* /
public static funktion toXml ($ data, $ rootNodeName = 'data', $ xml = null)
{
/ / Slå kompatibilitetstilstand så simpelt xml kaster en vaklende, hvis du ikke gør.
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,0 'encoding =' utf-8 '?> <$ RootNodeName />");
}
/ / Loop gennem de data, der gik i.
foreach ($ data $ key => $ value)
{
/ / Ingen numeriske taster i vores xml please!
if (is_numeric ($ nøgle))
{
/ / Gør streng nøglen ...
$ Key = "unknownNode_". (String) $ key;
}
/ / Erstatte noget ikke alfa numerisk
$ Key = preg_replace ('/ [^ az] / i', ", $ key);
/ / Hvis der er en anden række findes recrusively kalder denne funktion
if (is_array ($ værdi))
{
$ Node = $ xml-> addChild ($ key);
/ / Recrusive opkald.
ArrayToXML :: toXml ($ value, $ rootNodeName, $ node);
}
andet
{
/ / Tilføj enkelt node.
$ Value = htmlentities ($ value);
$ Xml-> addChild ($ key, $ value);
}
}
/ / Passere tilbage streng. eller simple xml objekt, hvis du vil!
returnere $ XML-> asXML ();
}
}













































