您当前的位置: 首页 > 网站编程 > PHP教程 > 用php实现xml与json之间的相互转换

用php实现xml与json之间的相互转换

作者:不详 来源:网络 发布时间: 2011-10-25 15:46 点击:
用php实现xml与json之间的相互转换: 相关函数请查看php手册。 一,参考xml如下 ?xml version=1.0 encoding=UTF-8? humans zhangying name张三/name sex男/sex old26/old /zhangying tank nametank/name sex haoyes/hao aaaano/aaaa /sex old26/old /tank /humans 二,

用php实现xml与json之间的相互转换

  用php实现xml与json之间的相互转换:
  
  相关函数请查看php手册。
  
  一,参考xml如下
  
  <?xml version="1.0" encoding="UTF-8"?>
  
  <humans>
  
  <zhangying>
  
  <name>张三</name>
  
  <sex>男</sex>
  
  <old>26</old>
  
  </zhangying>
  
  <tank>
  
  <name>tank</name>
  
  <sex>
  
  <hao>yes</hao>
  
  <aaaa>no</aaaa>
  
  </sex>
  
  <old>26</old>
  
  </tank>
  
  </humans>
  
  二,xml转换成json
  
  利用simplexml
  
  public function xml_to_json($source){
  
  if(is_file($source)){//传的是文件,还是xml的string的判断
  
  $xml_array=simplexml_load_file($source);
  
  }else{
  
  $xml_array=simplexml_load_string($source);
  
  }
  
  $json=json_encode($xml_array);//php5,以及以上,如果是更早版本,请查看JSON.php
  
  return$json;
  
  }
  
  三,json转换成xml
  
  利用递归函数
  
  public function json_to_xml($source,$charset='utf8'){
  
  if(empty($source)){
  
  return false;
  
  }
  
  //php5,以及以上,如果是更早版本,请查看JSON.php
  
  $array=json_decode($source);
  
  $xml='';
  
  $xml.=$this->change($array);
  
  return$xml;
  
  }
  
  public function change($source){
  
  $string="";
  
  foreach($source as$k=>$v){
  
  $string.="<".$k.">";
  
  //判断是否是数组,或者,对像
  
  if(is_array($v)||is_object($v)){
  
  //是数组或者对像就的递归调用
  
  $string.=$this->change($v);
  
  }else{
  
  //取得标签数据
  
  $string.=$v;
  
  }
  
  $string.="";
  
  }
  
  return$string;
  
  }
  
  上面的方法json_to_xml,可以支持<name>aaaa</name>,不支持<name type='test'>aaaaa</name>看代码就能看明白.

分享到:
本文"用php实现xml与json之间的相互转换"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4