Převod PHP pole do XML nebo Simple XML objekt

třída ArrayToXML

{

/ **

* Hlavní funkce pro konverzi do XML dokumentu.

* Překročte do multi dimenzionální pole a to recrusively prochází a hromadí se XML dokument.

*

* @ Param array $ data

* @ Param string $ rootNodeName - to, co chcete kořenový uzel být - defaultsto údaje.

* @ Param SimpleXMLElement $ xml - by měl být používán rekurzivně
* @ Return string XML

* /

public static funkce toXml ($ data, $ rootNodeName = 'data', $ xml = null)

{

/ / Vypnout režim kompatibility jako jednoduchý XML vyvolá rozviklaný, pokud tomu tak není.

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 />");

}

/ / Procházet data prošel dovnitř

foreach ($ data as $ key => $ value)

{

/ / Bez numerických kláves v naší xml, prosím!

if (funkci is_numeric ($ key))

{

/ / Aby řetězec klíč ...

$ Key = "unknownNode_". (String) $ key;

}

/ / Nahradit vše, co nebylo alfanumerický

$ Key = preg_replace ('/ [^ az] / i ",", $ key);

/ / Pokud je další pole našel recrusively volání této funkce

if (is_array ($ value))

{

$ Node = $ xml-> addChild ($ key);

/ / Recrusive volání.

ArrayToXML :: toXml ($ value, $ rootNodeName, $ node);

}

jiný

{

/ / Přidá jeden uzel.

Kč htmlentities hodnota = ($ value);

$ Xml-> addChild ($ key, $ value);

}

}

/ / Složit zpět jako řetězec. nebo jednoduchý objekt XML, pokud chcete!

return $ xml-> asXML ();

}

}

Můžete zanechat komentář , nebo trackback z vašich vlastních stránek.

Dovolená jeden Namítat

Musíte být přihlášen , abyste mohl psát komentář.