המרת מערך 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.0-UTF-8 "?> <$ RootNodeName />");

}

/ / לולאה באמצעות הנתונים עברו פנימה

foreach ($ נתונים כמו $ key => $ value)

{

/ / אין מקשי הספרות ב-XML שלנו בבקשה!

אם (is_numeric ($ מפתח))

{

/ / את מחרוזת המפתח ...

$ Key = "unknownNode_". (מחרוזת) $ המפתח;

}

/ / להחליף שום דבר לא אלפא נומרי

$ Key = preg_replace ('/ [^ az] / i ",", $ מפתח);

/ / אם יש עוד מגוון מצא recrusively קוראים לזה פונקציה

אם (is_array ($ לערך))

{

הצומת $ = $ xml-> addChild ($ מפתח);

/ / Recrusive השיחה.

ArrayToXML :: toXml ($ ערך, rootNodeName $, $ צומת);

}

אחר

{

/ / להוסיף צומת אחד.

$ = ערך htmlentities ($ לערך);

$ Xml-> addChild ($ מפתח, $ ערך);

}

}

/ / לעבור חזרה כמחרוזת. או אובייקט XML פשוט אם אתה רוצה!

לחזור $ xml-> asXML ();

}

}

אתה יכול לכתוב כאן תגובה , או trackback מהאתר שלכם.

השאירו תגובה

עליך להיות מחובר בכדי לפרסם תגובה.