Konvertera PHP Array till XML eller Enkel XML-objekt

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

}

}

Du kan lämna en kommentar , eller trackback från din egen webbplats.

Lämna ett svar

Du måste vara inloggad för att skriva en kommentar.