Klasse ArrayToXML
{
/ **
* Die wichtigste Funktion zum Umwandeln in ein XML-Dokument.
* In einem mehrdimensionalen Array übergeben und dieser recrusively Schleife durch und baut ein XML-Dokument.
*
* @ Param array $ data
* @ Param string $ rootNodeName - defaultsto Daten - was man der Wurzelknoten die es werden wollen.
* @ Param $ xml SimpleXMLElement - sollte nur rekursiv benutzt werden
* @ Return string XML
* /
public static function toXml ($ data, $ rootNodeName = 'Daten', $ xml = null)
{
/ / Ausschalten Kompatibilitätsmodus als einfache XML wirft einen wackeligen, wenn Sie dies nicht tun.
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 />");
}
/ / Schleife durch die Daten weitergegeben in.
foreach ($ data as $ key => $ value)
{
/ / Keine numerischen Tasten in unserer XML-bitte!
if (is_numeric ($ key))
{
/ / String-Schlüssel machen ...
$ Key = "unknownNode_". (String) $ key;
}
/ / Ersetzen alles nicht alphanumerische
$ Key = preg_replace ('/ [^ az] / i', ", $ key);
/ / Wenn es eine andere Array gefunden recrusively rufen Sie diese Funktion
if (is_array ($ value))
{
$ Node = $ xml-> addChild ($ key);
/ / Recrusive Anruf.
ArrayToXML :: toXml ($ value, $ rootNodeName, $ node);
}
sonst
{
/ / Hinzufügen einzelner Knoten.
$ Value = htmlentities ($ value);
$ Xml-> addChild ($ key, $ value);
}
}
/ / Pass As String zurück. oder einfache XML-Objekt, wenn Sie wollen!
return $ xml-> asXML ();
}
}













































