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+MYSQL的文章管理系统(二)
Oct 09 PHP
php cookie 登录验证示例代码
Mar 16 PHP
PHP安全配置详细说明
Sep 26 PHP
PHP文章采集URL补全函数(FormatUrl)
Aug 02 PHP
php设置允许大文件上传示例代码
Mar 10 PHP
php计算一个文件大小的方法
Mar 30 PHP
php生成过去100年下拉列表的方法
Jul 20 PHP
PHP实现获取文件后缀名的几种常用方法
Aug 08 PHP
PHP实现的网站目录扫描索引工具
Sep 08 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
Oct 08 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
Laravel模糊查询区分大小写的实例
Sep 29 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自动适应范围的分页代码
2008/08/05 PHP
php使用MySQL保存session会话的方法
2015/06/26 PHP
ExtJs事件机制基本代码模型和流程解析
2010/10/24 Javascript
JavaScript计算字符串中每个字符出现次数的小例子
2013/07/02 Javascript
window.open打开页面居中显示的示例代码
2013/12/27 Javascript
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
2014/06/06 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
2015/12/02 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
BootStrap响应式导航条实例介绍
2016/05/06 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
2016/09/23 Javascript
将JSON字符串转换成Map对象的方法
2016/11/30 Javascript
jquery 标签 隔若干行加空白或者加虚线的方法
2016/12/07 Javascript
原生js实现可拖动的登录框效果
2017/01/21 Javascript
详解Node 定时器
2018/02/26 Javascript
详解在vue-test-utils中mock全局对象
2018/11/07 Javascript
axios 实现post请求时把对象obj数据转为formdata
2019/10/31 Javascript
基于小程序请求接口wx.request封装的类axios请求
2020/07/02 Javascript
[03:38]2014DOTA2西雅图国际邀请赛 VG战队巡礼
2014/07/07 DOTA
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
利用pyinstaller将py文件打包为exe的方法
2018/05/14 Python
用Python PIL实现几个简单的图片特效
2019/01/18 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
django的模型类管理器——数据库操作的封装详解
2020/04/01 Python
印度尼西亚在线时尚购物网站:ZALORA印尼
2016/08/02 全球购物
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
Java里面有没有全局变量?为什么?
2015/02/06 面试题
经济管理专业毕业生推荐信
2013/11/11 职场文书
土木工程专业个人求职信
2013/12/05 职场文书
初中家长评语大全
2014/12/26 职场文书
2015年度培训工作总结范文
2015/04/02 职场文书
大学推普周活动总结
2015/05/07 职场文书
《浅水洼里的小鱼》教学反思
2016/02/16 职场文书
Mysql基础之常见函数
2021/04/22 MySQL
docker 制作mysql镜像并自动安装
2022/05/20 Servers