Konverter PHP Array til XML eller Enkel XML Object

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

}

}

Du kan legge igjen et svar , eller trackback fra din egen side.

Legg igjen en kommentar

Du må være innlogget for å skrive en kommentar.