Convertir matriz de objetos de PHP a XML XML o simple

clase ArrayToXML

{

/ **

* La función principal para la conversión de un documento XML.

* Pasar de una matriz multidimensional y esto recrusively recorre y construye un documento XML.

*

* @ Param array $ data

* @ Param string $ rootNodeName - lo que quiere el nodo raíz de ser - los datos defaultsto.

* @ Param $ xml SimpleXMLElement - sólo se debe utilizar de forma recursiva
* @ Return cadena XML

* /

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

{

/ / Desactivar el modo de compatibilidad tan simple xml lanza una tambaleante si no lo hace.

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

}

/ / Iterar a través de los datos transmitidos pulgadas

foreach ($ datos as $ key => $ valor)

{

/ / No hay teclas numéricas en nuestro xml por favor!

if (is_numeric ($ key))

{

/ / Asegurar que la cadena clave ...

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

}

/ / Reemplazar todo lo que no alfanumérico

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

/ / Si no hay otra matriz encontrado recrusively llamar a esta función

if (is_array ($ valor))

{

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

/ / Recrusive llamada.

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

}

más

{

/ / Añadir un solo nodo.

US $ htmlentities = valor ($ valor);

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

}

}

/ / Pasar de nuevo como una cadena. o un objeto XML sencillo si quieres!

return $ xml-> asXML ();

}

}

Puedes dejar una respuesta , o trackback desde tu propio sitio.

Deja un comentario

Usted debe estar logueado para escribir un comentario.