klass ArrayToXML
{
/ **
* Den huvudsakliga funktionen för konvertering till ett XML-dokument.
* Pass i en multi dimensionell array och det recrusively loopar igenom och bygger upp ett XML-dokument.
*
* @ Param array $ uppgifter
* @ Param string $ rootNodeName - vad du vill att rotnoden vara - defaultsto data.
* @ Param SimpleXMLElement $ xml - bör endast användas rekursivt
* @ Return string XML
* /
public static funktion toXml ($ data, $ rootNodeName = 'data', $ xml = null)
{
/ / Stänger kompatibilitetsläge så enkelt xml kastar en vinglig om du inte 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 'encoding =' utf-8 '?> <$ RootNodeName />");
}
/ / Loop genom data som skickas i.
foreach ($ data $ key => $ value)
{
/ / Inga numeriska tangenterna i vår xml tack!
if (is_numeric ($ nyckel))
{
/ / Gör strängnyckel ...
$ Key = "unknownNode_". (Sträng) $ nyckel;
}
/ / Byt ut allt som inte alfanumerisk
$ Key = preg_replace ('/ [^ az] / i', ", $ key);
/ / Om det finns en annan uppsättning hittade recrusively kallar denna funktion
if (is_array ($ value))
{
$ Nod = $ xml-> addChild ($ key);
/ / Recrusive samtal.
ArrayToXML :: toXml ($ value, $ rootNodeName, $ nod);
}
annars
{
/ / Lägg enda nod.
$ Value = htmlentities ($ value);
$ Xml-> addChild ($ key, $ value);
}
}
/ / Passera tillbaka som sträng. eller enkla XML-objekt om du vill!
return $ xml-> asXML ();
}
}













































