php实现xml与json之间的相互转换功能实例


Posted in PHP onJuly 07, 2016

本文实例讲述了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>看代码就能看明白.

PS:本站还提供了如下XML与JSON相关工具,方便大家参考使用:

在线XML/JSON互相转换工具:
http://tools.3water.com/code/xmljson

php代码在线格式化美化工具:

在线XML格式化/压缩工具:
http://tools.3water.com/code/xmlformat

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.3water.com/code/jsoncodeformat

C语言风格/HTML/CSS/json代码格式化美化工具:
http://tools.3water.com/code/ccode_html_css_json

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
对Session和Cookie的区分与解释
Mar 16 PHP
php mssql 日期出现中文字符的解决方法
Mar 10 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
Dec 25 PHP
apache和php之间协同工作的配置经验分享
Apr 08 PHP
Php无限级栏目分类读取的实现代码
Feb 19 PHP
Linux中用PHP判断程序运行状态的2个方法
May 04 PHP
php保存二进制原始数据为图片的程序代码
Oct 14 PHP
CI框架装载器Loader.php源码分析
Nov 04 PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
Feb 15 PHP
PHP array_shift()用法实例分析
Jan 07 PHP
PHP的mysqli_rollback()函数讲解
Jan 23 PHP
PHP PDOStatement::fetch讲解
Jan 31 PHP
PHP登录验证码的实现与使用方法
Jul 07 #PHP
PHP常见的6个错误提示及解决方法
Jul 07 #PHP
php生成mysql的数据字典
Jul 07 #PHP
php自定义函数实现JS的escape的方法示例
Jul 07 #PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
Jul 07 #PHP
PHP使用自定义方法实现数组合并示例
Jul 07 #PHP
PHP记录和读取JSON格式日志文件
Jul 07 #PHP
You might like
PHP实现返回JSON和XML的类分享
2015/01/28 PHP
twig模板常用语句实例小结
2016/02/04 PHP
给Function做的OOP扩展
2009/05/07 Javascript
jquery下实现overlay遮罩层代码
2010/08/25 Javascript
node.js中的path.normalize方法使用说明
2014/12/08 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
JS简单循环遍历json数组的方法
2016/04/22 Javascript
JavaScript制作简单的框选图表
2017/05/15 Javascript
ionic App问题总结系列之ionic点击系统返回键退出App
2017/08/19 Javascript
vue实现简单的MVVM框架
2018/08/05 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
2018/11/02 Javascript
angular4自定义表单控件[(ngModel)]的实现
2018/11/23 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
在elementui中Notification组件添加点击事件实例
2020/11/11 Javascript
[01:11:46]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第一场 2月23日
2021/03/11 DOTA
python 中文乱码问题深入分析
2011/03/13 Python
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
2014/10/23 Python
深入讨论Python函数的参数的默认值所引发的问题的原因
2015/03/30 Python
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
Python爬虫实现(伪)球迷速成
2018/06/10 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
2018/10/15 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
numpy.meshgrid()理解(小结)
2019/08/01 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
2020/03/04 Python
基于python+selenium自动健康打卡的实现代码
2021/01/13 Python
python 基于opencv去除图片阴影
2021/01/26 Python
UGG雪地靴荷兰官网:UGG荷兰
2016/09/09 全球购物
享受加州生活方式的时尚舒适:XCVI
2018/07/09 全球购物
农业资源与环境专业自荐信范文
2013/12/30 职场文书
幼儿园新学期寄语
2014/01/18 职场文书
工作态度不端正检讨书
2014/10/04 职场文书
网上祭英烈活动总结
2015/02/04 职场文书
盲山观后感
2015/06/11 职场文书
总结会主持词
2015/07/02 职场文书
mysql sock 文件解析及作用讲解
2022/07/15 MySQL