lớp ArrayToXML
{
/ **
* Chức năng chính để chuyển đổi một tài liệu XML.
* Pass trong một mảng đa chiều và điều này recrusively vòng qua và xây dựng một tài liệu XML.
*
* @ Param mảng dữ liệu
* @ Param string $ rootNodeName - những gì bạn muốn nút gốc là - defaultsto dữ liệu.
* @ Param SimpleXMLElement xml - chỉ nên được sử dụng đệ quy
* @ Trả lại chuỗi XML
* /
toXml tĩnh chức năng công cộng ($ data, $ rootNodeName = 'dữ liệu', $ xml = null)
{
/ / Tắt chế độ tương thích đơn giản xml ném một lung lay nếu bạn không làm.
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,0 'mã hóa =' utf-8"> <$ rootNodeName /> ");
}
/ / Vòng lặp thông qua các dữ liệu thông qua.
foreach ($ dữ liệu như là $ key => $ giá trị)
{
/ / Không có phím số trong xml chúng tôi, xin vui lòng!
(is_numeric ($ key))
{
/ / Làm cho chuỗi chìa khóa ...
$ Key = "unknownNode_". (String) $ key;
}
/ / Thay thế bất cứ điều gì không alpha số
$ Key = preg_replace ('/ [^ az] / i ", $ key);
/ / Nếu có một mảng khác tìm thấy recrusively gọi chức năng này
(is_array ($ value))
{
$ Node = $ xml-> addChild ($ key);
/ / Recrusive cuộc gọi.
ArrayToXML :: toXml ($ value, $ rootNodeName, $ node);
}
khác
{
/ / Thêm nút duy nhất.
Giá trị = htmlentities ($ value);
$ Xml-> addChild ($ key, $ value);
}
}
/ / Vượt qua trở lại như là một chuỗi. hoặc đơn giản xml đối tượng nếu bạn muốn!
trả lại $ xml-> asXML ();
}
}













































