Converter array PHP para XML ou Simple Object XML

classe ArrayToXML

{

/ **

* A principal função para converter para um documento XML.

* Passe em um array multi dimensional e este recrusively percorre e constrói-se um documento XML.

*

* @ Param array $ data

* @ Param cadeia rootNodeName $ - o que você quer que o nó de raiz para ser - dados defaultsto.

* @ Param SimpleXMLElement $ xml - só deve ser usado recursivamente
* @ Return string XML

* /

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

{

/ / Desativar o modo de compatibilidade como xml simples lança uma cambaleante se você não faz.

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

}

/ / Loop através dos dados passados ​​dentro

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

{

/ / Sem teclas numéricas no nosso xml, por favor!

if (is_numeric ($ key))

{

/ / Fazer seqüência de chave ...

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

}

/ / Substituir qualquer coisa não alfa numérico

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

/ / Se houver outra matriz encontrada recrusively chamar esta função

if (is_array ($ valor))

{

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

/ / Recrusive chamada.

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

}

outro

{

/ / Adiciona único nó.

R $ htmlentities valor = ($ valor);

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

}

}

/ / Passa para trás como string. ou objeto xml simples, se você quiser!

return $ xml-> asXML ();

}

}

Você pode deixar uma resposta , ou trackback de seu próprio site.

Deixe uma resposta

Você deve estar logado para postar um comentário.