Преобразование массива в PHP XML или простой XML объектов

Класс ArrayToXML

{

/ **

* Основная функция для преобразования XML-документов.

* Перейдите в многомерных массивов и это recrusively просматривает и создает XML-документ.

*

* @ Параметров массив $ данных

* @ Параметров строки $ rootNodeName - то, что вы хотите, чтобы корневой узел будет - defaultsto данных.

* @ Параметров SimpleXMLElement $ XML - следует использовать только рекурсивно
* @ Возвращение строки XML

* /

общественности статической ToXml функции ($ данным, $ rootNodeName = 'данные', $ XML = NULL)

{

/ / Выключить режим совместимости, как простой XML бросает шаткий, если вы не делаете.

если (ini_get ("zend.ze1_compatibility_mode ') == 1)

{

ini_set ('zend.ze1_compatibility_mode', 0);

}

если ($ XML == NULL)

{

$ XML = simplexml_load_string ("<версия XML = 'кодирование =' '1 .0 UTF-8"?> <$ RootNodeName /> ");

}

/ / Цикл по данным прошли дюйма

Еогеасп ($ данных $ ключ => $ значение)

{

/ / Нет цифровых клавиш в нашем XML, пожалуйста!

если (is_numeric ($ ключ))

{

/ / Сделать строку ключ ...

$ Ключ = "unknownNode_". (Строка) $ ключ;

}

/ / Заменить все не буквенно-цифровой

$ Ключ = preg_replace ('/ [^ az] / я', ", $ ключ);

/ / Если есть еще один массив найден recrusively вызывать эту функцию

если (is_array ($ значение))

{

$ = $ Узел XML-> AddChild ($ ключ);

/ / Recrusive вызова.

ArrayToXML :: ToXml ($ значение $ rootNodeName, $ узлов);

}

еще

{

/ / Добавить одного узла.

$ = Значение htmlentities ($ значение);

$ XML-> AddChild ($ ключ, $ значение);

}

}

/ / Передать обратно в виде строки. или просто XML-объект, если вы хотите!

return $ XML-> asXML ();

}

}

Вы можете оставить отзыв или трекбек со своего сайта.

Оставить комментарий

Вы должны быть зарегистрированы , чтобы оставить комментарий.