/**
* xml转化为数组
* @param [type] $xml [description]
* <xml>
* <appid><![CDATA[wx495813085bb41c7a]]></appid>
* <attach><![CDATA[4757,10]]></attach>
* </xml>
* @return [type] [description]
*Array
(
[0] => Array
(
[tag] => APPID
[attributes] =>
[val] => wx495813085bb41c7a
[level] => 2
)
[1] => Array
(
[tag] => ATTACH
[attributes] =>
[val] => 4757,10
[level] => 2
)
)
*
*/
function xml_to_array($xml){
// 创建解析器
$parser = xml_parser_create();
// 将 XML 数据解析到数组中
xml_parse_into_struct($parser, $xml, $vals, $index);
// 释放解析器
xml_parser_free($parser);
// 数组处理
$arr = array();
$t=0;
foreach($vals as $value) {
$type = $value['type'];
$tag = $value['tag'];
$level = $value['level'];
$attributes = isset($value['attributes'])?$value['attributes']:"";
$val = isset($value['value'])?$value['value']:"";
switch ($type) {
case 'open':
if ($attributes != "" || $val != "") {
$arr[$t]['tag'] = $tag;
$arr[$t]['attributes'] = $attributes;
$arr[$t]['level'] = $level;
$t++;
}
break;
case "complete":
if ($attributes != "" || $val != "") {
$arr[$t]['tag'] = $tag;
$arr[$t]['attributes'] = $attributes;
$arr[$t]['val'] = $val;
$arr[$t]['level'] = $level;
$t++;
}
break;
}
}
return $arr;
}
php 如何将xml转为数组array
原创
©著作权归作者所有:来自51CTO博客作者软件工程小施同学的原创作品,请联系作者获取转载授权,否则将追究法律责任
下一篇:创建phpinfo.php
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
GO PHP7
GO PHP7
php7 -
Linux -安装PHP7
Linux -安装PHP7
Linux 安装 PHP7