Konvertieren Sie PHP-Array in XML oder XML Object Einfache

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 ();

}

}

Sie können eine Antwort hinterlassen , oder trackback von deiner eigenen Seite.

Lassen Sie eine Antwort

Sie müssen eingeloggt um einen Kommentar abzugeben.