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之字符串变相相减的代码
Mar 19 PHP
深入apache host的配置详解
Jun 09 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 PHP
PHP解析目录路径的3个函数总结
Nov 18 PHP
PHP基于单例模式实现的mysql类
Jan 09 PHP
php生成txt文件实例代码介绍
Apr 28 PHP
PHP邮箱验证示例教程
Jun 01 PHP
php多文件打包下载的实例代码
Jul 12 PHP
php通过header发送自定义数据方法
Jan 18 PHP
PHP给源代码加密的几种方法汇总(推荐)
Feb 06 PHP
thinkPHP5框架自定义验证器实现方法分析
Jun 11 PHP
ThinkPHP5与单元测试PHPUnit使用详解
Feb 23 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
第十二节 类的自动加载 [12]
2006/10/09 PHP
PHP file_get_contents 函数超时的几种解决方法
2009/07/30 PHP
php的ddos攻击解决方法
2015/01/08 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
从Ajax到JQuery Ajax学习
2007/02/14 Javascript
javascript 检测浏览器类型和版本的代码
2009/09/15 Javascript
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
JavaScript 计算图片加载数量的代码
2011/01/01 Javascript
基于jquery的多功能软键盘插件
2012/07/25 Javascript
滚动图片效果 jquery实现回旋滚动效果
2013/01/08 Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
2013/08/13 Javascript
时间戳转换为时间 年月日时间的JS函数
2013/08/19 Javascript
javascript计算用户打开网页的停留时间
2014/01/09 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
jQuery pager.js 插件动态分页功能实例分析
2019/08/02 jQuery
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
VUE前端从后台请求过来的数据进行转换数据结构操作
2020/11/11 Javascript
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
深入浅析python中的多进程、多线程、协程
2016/06/22 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
selenium+python实现自动登录脚本
2018/04/22 Python
python flask实现分页的示例代码
2018/08/02 Python
详解Python进阶之切片的误区与高级用法
2018/12/24 Python
python同义词替换的实现(jieba分词)
2020/01/21 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
俄罗斯卫浴采暖及维修用品超级市场:Dkrussia
2020/05/12 全球购物
策划创业计划书
2014/02/06 职场文书
2014小学生国庆65周年演讲稿
2014/09/21 职场文书
2016年第16个全民国防教育日宣传活动总结
2016/04/05 职场文书
Windows下使用Nginx+Tomcat做负载均衡的完整步骤
2021/03/31 Servers
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android
Python中22个万用公式的小结
2021/07/21 Python
把77A收信机改造成收音机
2022/04/05 无线电