Converter array PHP para XML ou Simple Object XML

clase ArrayToXML

{

/ **

* A principal función para converter a un documento XML.

* Pase nun array multi dimensional e este recrusively percorre e constrúese un documento XML.

*

* @ Param array $ data

* @ Param cadea rootNodeName $ - o que quere que o nó de raíz para - datos defaultsto.

* @ Param SimpleXMLElement $ xml - só debe ser usado recursivamente
* @ Return cadea XML

* /

ToXml public static function ($ data, $ rootNodeName = 'datos', $ xml = null)

{

/ / Desactivar o modo de compatibilidade como xml simple lanza unha cambaleante se non fai.

if (ini_get ('zend.ze1_compatibility_mode') == 1)

{

ini_set ('zend.ze1_compatibility_mode', 0);

}

if ($ xml == null)

{

$ XML = simplexml_load_string ("<xml version ='encoding =''1 .0 utf-8'?> <RootNodeName $ />");

}

/ / Bucle a través dos datos pasados ​​dentro

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

{

/ / Non hai teclas de números no noso xml, por favor!

if (is_numeric ($ key))

{

/ / Facer secuencia de clave ...

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

}

/ / Substituír algo non alfa numérico

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

/ / Se hai outra matriz atopou recrusively chamar esta función

if (is_array ($ valor))

{

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

/ / Recrusive chamada.

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

}

outro

{

/ / Engade único nodo.

R $ htmlentities valor = ($ valor);

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

}

}

/ / Pasa cara atrás como cadea. ou obxecto xml simple, se quere!

return $ xml-> asXML ();

}

}

Pode deixar unha resposta , ou trackback do teu sitio web.

Deixe unha resposta

Ten que estar logueado para escribir un comentario.