- 论坛徽章:
- 0
|
有一段代码,想要将数组转化为xml格式:- <?php
-
- $msg ['ToUserName'] = 'o79ortyr_MsY3o_BgdEQYDpi1M48';
- $msg ['FromUserName'] = 'gh_7fbd286b23b3';
- $msg ['CreateTime'] = 1398763870;
- $msg ['MsgType'] = 'text';
- $xmlmsg = '
- <xml>
- <ToUserName>
- <![CDATA[o79ortyr_MsY3o_BgdEQYDpi1M48]]>
- </ToUserName>
- <FromUserName>
- <![CDATA[gh_7fbd286b23b3]]>
- </FromUserName>
- <CreateTime>1398763870</CreateTime>
- <MsgType>
- <![CDATA[text]]>
- </MsgType>
- <Content>
- <![CDATA[你好]]>
- </Content>
- </xml>
- ';
- $xmlm = new \SimpleXMLElement ( $xmlmsg );
- _data2xml ( $xmlm, $msg, 'item' );
-
- $str = $xmlm->asXML ();
-
- // 记录日志
-
- print_r ($str);
-
- function _data2xml($xmls, $data, $item = 'item') {
- print_r ( $data );
- foreach ( $data as $key => $value ) {
- is_numeric ( $key ) && ($key = $item);
- echo ($key .'-->'. $value);
- if (is_array ( $value ) || is_object ( $value )) {
- $child = $xmls->addChild ( $key );
- _data2xml ( $child, $value, $item );
- } else {
- if (is_numeric ( $value )) {
- $child = $xmls->addChild ( $key, $value );
- } else {
- $child = $xmls->addChild ( $key );
- $node = dom_import_simplexml ( $child );
- $node->appendChild ( $node->ownerDocument->createCDATASection ( $value ) );
-
- }
- }
- }
- }
- ?>
复制代码 运行以后得到的是这样的:
Array ( [ToUserName] => o79ortyr_MsY3o_BgdEQYDpi1M48 [FromUserName] => gh_7fbd286b23b3 [CreateTime] => 1398763870 [MsgType] => text ) ToUserName-->o79ortyr_MsY3o_BgdEQYDpi1M48
好像没有遍历数组,不知道哪里错了? |
|