php数组与xml互转类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php数组与xml互转类相关的知识,希望对你有一定的参考价值。
- 代码:
/** * @desc:xml与array互转 * @author [Lee] <[<[email protected]>]> * @property * data 传入的数据 * @method * arraytoxml 数组转xml 参数:data 返回:xml * arraytoxml xml转数组 参数:xml 返回:data */ class xmlarray{ private $data; # 传入数据 /* @desc:内部方法 递归转换数组成xml格式 @param data 传入的数组 @return str 返回的xml身体部分 */ private function change($data) { $str=""; foreach($data as $k=>$v){ $str .="<".$k.">"; if(is_array($v) || is_object($v)){ $str .= $this->change($v); }else{ $str .=$v; } $str .="</".$k.">"; } return $str; } /* @desc:构造方法,实例化数据 @param data 传入的数据 */ public function __construct($data){ $this->data = $data; } /* @desc:数组转xml @return xml */ public function arraytoxml() { $xml =‘<!--xml version="1.0" encoding="utf8" -->‘; $xml .= $this->change($this->data); return $xml; } /* @desc:xml转数组 @return arr */ public function xmltoarray(){ $obj = simplexml_load_string($this->data, ‘SimpleXMLElement‘, LIBXML_NOCDATA); $json = json_encode($obj); $arr = json_decode($json, true); return $arr; } }
- 测试:
$str = ‘<!--xml version="1.0" encoding="utf8" --><document><name>lee</name><sex>male</sex></document>‘; $xmlarray = new xmlarray($str); $ret = $xmlarray->xmltoarray(); var_dump($ret);
- 输出:
array(2) { ["name"]=> string(3) "lee" ["sex"]=> string(4) "male" }
以上是关于php数组与xml互转类的主要内容,如果未能解决你的问题,请参考以下文章