Php generates xml like a tree. you can add nodes one by one. you can add multiple subnodes under a parent node: functionmadexml () {get template information $ strTempInfo $ this-modelCmsObj-getTemplate (2007); $ arrTempexplode (#, $ strTempI php generates xml like a tree, adding nodes one by one, you can add multiple subnodes under a parent node:
Function madexml () {// Get template information $ strTempInfo = $ this-> modelCmsObj-> getTemplate ('20140901'); $ arrTemp = explode ("#", $ strTempInfo ); array_shift ($ arrTemp); $ arrContents = array (); foreach ($ arrTemp as $ k = >$ v) {$ arrContents [$ k] = explode (",", $ v);} // Parse the xml file $ objDom = new DOMDocument ("1.0"); header ("Content-Type: text/plain "); // add elements and text nodes $ root = $ objDom-> createElement ("recommend"); $ objDom-> appendChild ($ root ); foreach ($ arrContents as $ k => $ v) {$ item = $ objDom-> createElement ("entry"); $ root-> appendChild ($ item ); $ nextitem1 = $ objDom-> createElement ("simgurl"); $ nextitem2 = $ objDom-> createElement ("imgurl "); $ nextitem3 = $ objDom-> createElement ("fileurl"); $ item-> appendChild ($ nextitem1); $ item-> appendChild ($ nextitem2 ); $ item-> appendChild ($ nextitem3); $ text1 = $ objDom-> createTextNode ($ v [0]); $ text = $ objDom-> createTextNode ($ v [1]); $ text2 = $ objDom-> createTextNode ($ v [2]); $ nextitem2-> appendChild ($ text1); $ nextitem3-> appendChild ($ text2); $ nextitem1-> appendChild ($ text );} echo $ objDom-> saveXML ();}
Simplexml_load_string converts an xml string to a string
$ String = <
Forty What?
Joe
Jane
I know that's the answer -- but what's the question?
XML; $ xml = simplexml_load_string ($ string); var_dump ($ xml );
The above code will be output:
SimpleXMLElement Object ( [title] => Forty What? [from] => Joe [to] => Jane [body] => I know that's the answer -- but what's the question? )
If you want to convert xml to an array, first convert it to a string containing key values, and then loop it into an array:
/*** Convert xml to an array * @ param unknown_type $ xml */private function xml_to_array ($ xml) {$ array = (array) (simplexml_load_string ($ xml, 'simplexmlelement ', LIBXML_NOCDATA); foreach ($ array as $ key = >$ item) {$ array [$ key] = $ this-> struct_to_array (array) $ item );} return $ array;} private function struct_to_array ($ item) {if (! Is_string ($ item) {$ item = (array) $ item; foreach ($ item as $ key => $ val) {$ item [$ key] = self :: struct_to_array ($ val) ;}return $ item ;}