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应用提速面面观
Oct 09 PHP
PHP操作Memcache实例介绍
Jun 14 PHP
PHP字符串的递增和递减示例介绍
Feb 11 PHP
discuz目录文件资料汇总
Dec 30 PHP
php编写的抽奖程序中奖概率算法
May 14 PHP
浅谈php的优缺点
Jul 14 PHP
php面向对象值单例模式
May 03 PHP
php自定义函数实现统计中文字符串长度的方法小结
Apr 15 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
Jun 13 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
Oct 18 PHP
thinkphp5 路由分发原理
Mar 18 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
MySQL数据源表结构图示
2008/06/05 PHP
codeigniter自带数据库类使用方法说明
2014/03/25 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
PHP7内核之Reference详解
2019/03/14 PHP
使用CSS3实现字体颜色渐变的实现
2021/03/09 HTML / CSS
TNC vs BOOM BO3 第一场2.13
2021/03/10 DOTA
用javascript自动显示最后更新时间
2007/03/15 Javascript
eval与window.eval的差别分析
2011/03/17 Javascript
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
Javasipt:操作radio标签详解
2013/12/30 Javascript
javascript作用域链(Scope Chain)用法实例解析
2015/11/30 Javascript
jQuery实现进度条效果代码
2015/12/17 Javascript
提升jQuery的性能需要做好七件事
2016/01/11 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
jQuery动态移除和添加背景图片的方法详解
2017/03/07 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
JS中this的指向以及call、apply的作用
2018/05/06 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
2019/01/20 Javascript
微信小程序实现的图片保存功能示例
2019/04/24 Javascript
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
python学习之编写查询ip程序
2016/02/27 Python
浅谈Python浅拷贝、深拷贝及引用机制
2016/12/15 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
Python实现计算圆周率π的值到任意位的方法示例
2018/05/08 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
2019/10/28 Python
Python爬虫爬取煎蛋网图片代码实例
2019/12/16 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
酒吧副总经理岗位职责
2013/12/10 职场文书
广告创意求职信
2014/03/17 职场文书
感恩寄语大全
2014/04/11 职场文书
群众路线教育实践活动民主生活会个人检查对照思想汇报
2014/10/04 职场文书
毕业生个人总结
2015/02/28 职场文书
详解Java实现数据结构之并查集
2021/06/23 Java/Android