Конвертиране на PHP Array XML или просто XML Object

клас 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 == нула)

{

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

}

/ / Веригата данните премина инча

foreach ($ данни $ ключ => $ стойност)

{

/ / Не цифровите клавиши в нашата XML, моля!

ако (функцията is_numeric ($ ключ))

{

/ / Да низ ключ ...

$ Ключ = "unknownNode_". (Низ) $ ключ;

}

/ / Замяна нищо не алфа цифров

$ Ключ = preg_replace ('/ [^ А-Я] / I' ", $ ключ);

/ / Ако има друг масив recrusively обадете тази функция

ако (is_array ($ стойност))

{

$ Възел = $ XML-> addChild ($ ключ);

/ / Recrusive разговор.

ArrayToXML :: toXml ($ стойност $ rootNodeName, $ възел);

}

още

{

/ / Добавите един възел.

$ Htmlentities стойност = ($ стойност);

$ XML-> addChild ($ ключ, стойност);

}

}

/ / Пас назад като низ. или просто XML обект, ако искате!

върне $ XML-> asXML ();

}

}

Можете да оставите отговор , или Trackback от вашия собствен сайт.

Вашият коментар

Трябва да сте влезли в За да публикувате коментар.