PHP中数组转换为SimpleXML教程


Posted in PHP onJanuary 27, 2019

SimpleXML扩展函数提供了将XML转换为对象的工具集。这些对象处理普通的属性选择器和数组迭代器。

示例1:

<?php 
// 将php数组转换为xml文档的代码
 
//定义一个将数组转换成xml的函数。
function arrayToXml($array, $rootElement = null, $xml = null) { 
  $_xml = $xml; 
    
  // 如果没有$rootElement,则插入$rootElement
  if ($_xml === null) { 
    $_xml = new SimpleXMLElement($rootElement !== null ? $rootElement : '<root/>'); 
  } 
    
  // 访问所有键值对 
  foreach ($array as $k => $v) { 
      
    // 如果有嵌套数组 
    if (is_array($v)) { 
        
      // 调用嵌套数组的函数
      arrayToXml($v, $k, $_xml->addChild($k)); 
      } 
        
    else { 
        
        
      $_xml->addChild($k, $v); 
    } 
  } 
    
  return $_xml->asXML(); 
} 
  
// 创建一个用于演示的数组 
$my_array = array ( 
'name' => 'GFG', 
'subject' => 'CS', 
  
  // 创建嵌套数组。
  'contact_info' => array ( 
  'city' => 'Noida', 
  'state' => 'UP', 
  'email' => '448199179@qq.com'
  ), 
); 
  
// 调用arrayToxml函数并打印结果
echo arrayToXml($my_array); 
?>

输出:

<?xml version="1.0"?>
<root>
  <name> GFG </name>
  <subject> CS </subject>
  <contact_info >
    <city > Noida < /city >
    <state > UP < /state >
    <email > 448199179@qq.com </email>
  <contact_info>
<root>

可以使用array_walk_recursive()函数解决上述问题。此函数将数组转换为xml文档,其中数组的键转换为值,数组的值转换为xml的元素。

示例2:

<?php 
// 将php数组转换为xml文档的代码
//创建一个数组
$my_array = array ( 
  'a' => 'x', 
  'b' => 'y', 
    
  // creating nested array 
  'another_array' => array ( 
    'c' => 'z', 
  ), 
); 
  
// 这个函数使用root元素创建一个xml对象。
$xml = new SimpleXMLElement('<root/>'); 
  
// 这个函数重新将数组元素添加到xml文档中
array_walk_recursive($my_array, array ($xml, 'addChild')); 
  
// 这个函数打印xml文档。 
print $xml->asXML(); 
?>

输出:

<?xml version =“1.0”?> <root> 
    <x> a </ x> 
    <y> b </ y> 
    <z> c </ z> </ root>

注:

如果系统生成错误类型:

PHP Fatal error: Uncaught Error: Class ‘SimpleXMLElement' not found in /home/6bc5567266b35ae3e76d84307e5bdc78.php:24 ,

那么只需安装php-xml,php-simplexml软件包。

PHP 相关文章推荐
强烈推荐:php.ini中文版(1)
Oct 09 PHP
用PHP开发GUI
Oct 09 PHP
Smarty结合Ajax实现无刷新留言本实例
Jan 02 PHP
php array_map()数组函数使用说明
Jul 12 PHP
PHP Directory 函数的详解
Mar 07 PHP
PHP CURL获取返回值的方法
May 04 PHP
destoon调用自定义模板及样式的公告栏
Jun 21 PHP
PHP防止表单重复提交的几种常用方法汇总
Aug 19 PHP
PHP安全下载文件的方法
Apr 07 PHP
PHP基于自增数据如何生成不重复的随机数示例
May 19 PHP
Laravel学习教程之View模块详解
Sep 18 PHP
PHP实现的服务器一致性hash分布算法示例
Aug 09 PHP
实例讲解php实现多线程
Jan 27 #PHP
php中访问修饰符的知识点总结
Jan 27 #PHP
实例讲解php将字符串输出到HTML
Jan 27 #PHP
PHP常见加密函数用法示例【crypt与md5】
Jan 27 #PHP
PHP基于GD2函数库实现验证码功能示例
Jan 27 #PHP
PHP的PDO事务与自动提交
Jan 24 #PHP
PHP的PDO连接讲解
Jan 24 #PHP
You might like
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
php数组添加与删除单元的常用函数实例分析
2015/02/16 PHP
对字符串进行HTML编码和解码的JavaScript函数
2010/02/01 Javascript
JS实现模仿微博发布效果实例代码
2013/12/16 Javascript
JQuery异步获取返回值中文乱码的解决方法
2015/01/29 Javascript
JS实现动态生成表格并提交表格数据向后端
2020/11/25 Javascript
js实现图片淡入淡出切换简易效果
2016/08/22 Javascript
微信公众号支付H5调用支付解析
2016/11/04 Javascript
js时间查询插件使用详解
2017/04/07 Javascript
详解angular用$sce服务来过滤HTML标签
2017/04/11 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
微信小程序组件之srcoll-view的详解
2017/10/19 Javascript
vue中axios解决跨域问题和拦截器的使用方法
2018/03/07 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
微信小程序实现顶部下拉菜单栏
2018/11/04 Javascript
jQuery+css last-child实现选择最后一个子元素操作示例
2018/12/10 jQuery
利用原生JS实现data方法示例代码
2019/05/28 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
JS中的算法与数据结构之字典(Dictionary)实例详解
2019/08/20 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
Python实现的使用telnet登陆聊天室实例
2015/06/17 Python
Python之Scrapy爬虫框架安装及使用详解
2017/11/16 Python
python画微信表情符的实例代码
2019/10/09 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
Python使用windows设置定时执行脚本
2020/11/12 Python
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
Nisbets法国:英国最大的厨房和餐饮设备供应商
2019/03/18 全球购物
市场营销专业个人自荐信格式
2013/09/21 职场文书
个人简历自我评价八例
2013/10/31 职场文书
就业推荐表自我鉴定范文
2014/03/21 职场文书
打架检讨书范文
2015/01/27 职场文书
运动会800米赞词
2015/07/22 职场文书
党风廉洁教育心得体会
2016/01/20 职场文书
《王者天下》第4季首话新剧照 4月9日正式开播
2022/04/07 日漫
Redis实现一个账号只能登录一个设备
2022/04/19 Redis