Перетворення масиву в 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 ();

}

}

Ви можете залишити відгук або трекбек зі свого сайту.

Залишити коментар

Ви повинні бути зареєстровані , щоб залишити коментар.