Chuyển đổi PHP Array Object XML XML hoặc đơn giản

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 ();

}

}

Bạn có thể để lại một phản ứng , hoặc trackback từ trang web của riêng bạn.

Để lại một trả lời

Bạn phải đăng nhập để viết bình luận.