XML转数组
来源:互联网 发布:淘宝刷单怎么做 编辑:程序博客网 时间:2024/04/29 21:06
http://blog.csdn.net/baochao95/article/details/52737631
转换代码:
<?phpfunction xml2arr($simxml){ $simxml = (array)$simxml; foreach($simxml as $k => $v){ if(is_array($v) || is_object($v)){ $simxml[$k] = xml2arr($v); } } return $simxml; }$simxml = simplexml_load_file('./06.xml');print_r(xml2arr($simxml));?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
06.xml文件:
转换前:
这个对象中既有数组,数组中又包含了对象
转换后:
将这个对象中的所有对象全转换成数组
2、数组转换为XML
(1)一维数组转换为XML数据
代码:
<?php$arr = array( 'name' => 'webbc', 'age' => '22',);function arr2xml($arr){ $simxml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><root></root>'); foreach($arr as $k=>$v){ $simxml->addChild($k,$v); } header('Content-type:text/xml;charset=utf-8'); return $simxml->saveXML();}echo arr2xml($arr);?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
输出结果:
(2)多维数据转换为XML
代码:
<?php$arr = array( 'name' => 'webbc', 'age' => '22', 'job' => array( 'title' => '销售经理', 'salary' => '12K', 'team' => array('小明','小华','小林') ));function arr2xml($arr,$parentNode=null){ if($parentNode === null){ $simxml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><root></root>'); }else{ $simxml = $parentNode; } foreach($arr as $k=>$v){ if(is_array($v)){ arr2xml($v,$simxml->addChild($k)); }else if(is_numeric($k)){ $simxml->addChild('item'.$k,$v); }else{ $simxml->addChild($k,$v); } } header('Content-type:text/xml;charset=utf-8'); return $simxml->saveXML();}echo arr2xml($arr);?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
输出结果:
注意:纯数字不能作为xml的标签名,所以如果遇到索引数组,就必须使用字符来创建xml标签!
'); })();