klasse ArrayToXML
{
/ **
* Den viktigste funksjonen for å konvertere til et XML-dokument.
* Pass på en multi dimensjonal matrise og dette recrusively looper igjennom og bygger opp et XML-dokument.
*
* @ Param matrise kr data
* @ Param string $ rootNodeName - hva du vil rotnoden å være - defaultsto data.
* @ Param SimpleXMLElement $ xml - skal kun brukes rekursivt
* @ Return string XML
* /
public static funksjon toXml ($ data, $ rootNodeName = 'data', $ xml = null)
{
/ / Slå av kompatibilitetsmodus så enkelt XML kaster en wobbly hvis du ikke gjør det.
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 />");
}
/ / Løkke gjennom de data som går i.
foreach ($ data som $ nøkkel => $ value)
{
/ / Ingen numeriske tastene i xml vår takk!
if (is_numeric ($ key))
{
/ / Gjør string nøkkel ...
$ Key = "unknownNode_". (Streng) $ key;
}
/ / Erstatt noe ikke alfanumerisk
$ Key = preg_replace ('/ [^ az] / i', ", $ key);
/ / Hvis det finnes en annen matrise fant recrusively kaller denne funksjonen
if (is_array ($ verdi))
{
$ Node = $ xml-> addChild ($ key);
/ / Recrusive samtale.
ArrayToXML :: toXml ($ verdi, $ rootNodeName, $ node);
}
ellers
{
/ / Legg til én node.
Kr verdi = htmlentities ($ verdi);
$ Xml-> addChild ($ key, $ verdi);
}
}
/ / Sende tilbake som streng. eller enkle xml objektet hvis du vil!
returnere $ xml-> asXML ();
}
}













































