• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > php 处理数组和XML之间的互相转换实例代码

php 处理数组和XML之间的互相转换实例代码

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了php,转换,互相等相关知识,希望本文的分享对您有所帮助
在开发中,我们经常会遇到数组与XML之间的互相转换,尤其在处理接口开发的时候经常用到,比如对方客户端POST一个XML格式的数据到服务器上,服务器上的程序要负责接收解析,还有需要将数据表数据以XML格式提供给第三方等等应用。
本文我们将简单介绍如何使用PHP处理数组和XML之间的互相转换。

PHP将数组转换成XML
PHP可以将数组转换成xml格式,简单的办法是遍历数组,然后将数组的key/value转换成xml节点,再直接echo输出了,如:

function arrayToXml($arr){ 
$xml = "<root>"; 
foreach ($arr as $key=>$val){ 
if(is_array($val)){ 
$xml.="<".$key.">".arrayToXml($val)."</".$key.">"; 
}else{ 
$xml.="<".$key.">".$val."</".$key.">"; 
} 
} 
$xml.="</root>"; 
return $xml; 
}

我测试了下,这个最简单,速度又快,支持多为数组,中文也不会乱码。
另一种方法是利用DOMDocument来生成xml结构:

function arrayToXml($arr,$dom=0,$item=0){ 
if (!$dom){ 
$dom = new DOMDocument("1.0"); 
} 
if(!$item){ 
$item = $dom->createElement("root"); 
$dom->appendChild($item); 
} 
foreach ($arr as $key=>$val){ 
$itemx = $dom->createElement(is_string($key)?$key:"item"); 
$item->appendChild($itemx); 
if (!is_array($val)){ 
$text = $dom->createTextNode($val); 
$itemx->appendChild($text); 

}else { 
arrayToXml($val,$dom,$itemx); 
} 
} 
return $dom->saveXML(); 
}

它同样可以将数组转换成xml,而且支持多维数组,生成的xml中文也不会乱码。

PHP将XML转换成数组
做接口开发的时候经常会碰到别人提交给你的是xml格式的数据,常见的微信接口、支付宝接口等,他们的接口如发送消息通信都是xml格式的,那么我们先想办法拿到这个xml数据,然后再将其转化成数组。
假设我们获取到一个这样的XML:

 <root> 

<user>

月光光abcd</user> 

<pvs>13002</pvs>

 <ips> 

<baidu_ip>1200</baidu_ip>

 <google_ip>1829</google_ip>

 </ips> 

<date>2016-06-01</date>

 </root>

通过simplexml_load_string()解析读取xml数据,然后先转成json格式,再转换成数组。

 function xmlToArray($xml){ 

 //禁止引用外部xml实体 

libxml_disable_entity_loader(true); 

$xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA); 

$val = json_decode(json_encode($xmlstring),true); 

return $val; 

}

调用xmlToArray()可得到以下结果:


得到数组后,我们就可以对数据进行各种处理了。

以上就是php 处理数组和XML之间的互相转换实例代码的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 浅析mysql 语句的调度优先级及改变
  • 基于mysql多实例安装的深入解析
  • mysql_fetch_row()与mysql_fetch_array()的使用介绍
  • 基于Php mysql存储过程的详解
  • PHP之Mysql常用SQL语句示例的深入分析
  • PHP mysqli 增强 批量执行sql 语句的实现代码
  • PHP mysqli扩展库 预处理技术的使用分析
  • Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]
  • 修改mysql密码与忘记mysql密码的处理方法
  • 多次执行mysql_fetch_array()的指针归位问题探讨

相关文章

  • 2017-05-11Windows版Mysql5.6.11的安装与配置教程
  • 2018-12-05SQLServer 跨库查询实现方法
  • 2018-12-05有关mysql中ROW_COUNT()的小例子
  • 2018-12-05oracle学习笔记(二)
  • 2018-12-05如何在linux下设置MySQL数据库编码
  • 2018-12-05MySQL服务器的启动和关闭
  • 2017-05-11与MSSQL对比学习MYSQL的心得(三)--查看字段的长度
  • 2018-12-05MySQL数据库的启动,连接,断开与停止
  • 2018-12-05MySQL 存储过程中执行动态 SQL 语句
  • 2017-12-17 设置Ubuntu上的MySQL可以远程访问

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • SqlServer 2005 中字符函数的应用
    • mysql-Window2008 MYSQL 挂了
    • SQL LIKE 通配符随笔
    • 关于MYSQL 远程登录的授权方法 命令
    • MySql的存储过程学习小结 附pdf文档下载
    • MySQL利用procedure analyse()函数优化表结构
    • MySQL存储过程使用实例详解
    • 对有insert触发器表取IDENTITY值时发现的问题
    • hibernate的配置文件工作原理和两种设计:一对多、多对多
    • mongoDB是怎么实现分页的?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有