Konverter PHP Array til XML eller Simpel XML Object

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

}

}

Du kan efterlade et svar , eller trackback fra dit eget site.

Efterlad et svar

Du skal være logget ind for at skrive en kommentar.