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 相关文章推荐
织梦模板标记简介
Mar 11 PHP
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
Nov 27 PHP
mac下使用brew配置环境的步骤分享
May 23 PHP
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
Nov 07 PHP
php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
Jun 18 PHP
php制作unicode解码工具(unicode编码转换器)代码分享
Dec 24 PHP
php使用qr生成二维码的示例分享
Jan 20 PHP
php使用array_search函数实现数组查找的方法
Jun 12 PHP
ThinkPHP实现图片上传操作的方法详解
May 08 PHP
PHP+jQuery实现双击修改table表格功能示例
Feb 21 PHP
PHP将整数数字转换为罗马数字实例分享
Mar 17 PHP
基于PHP实现用户登录注册功能的详细教程
Aug 04 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 注释规范
2012/03/29 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
2018/11/29 PHP
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
php对mongodb的扩展(小试牛刀)
2012/11/11 Javascript
基于jquery实现图片上传本地预览功能
2016/01/08 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
2016/12/14 Javascript
js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
2017/02/19 Javascript
详解关于vue2.0工程发布上线操作步骤
2018/09/27 Javascript
JS无限级导航菜单实现方法
2019/01/05 Javascript
vue本地打开build后生成的dist文件夹index.html问题
2019/09/04 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
Node.js API详解之 querystring用法实例分析
2020/04/29 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
2020/08/04 Javascript
理解JavaScript中的对象
2020/08/25 Javascript
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
[06:16]DOTA2守卫传承者——职业选手谈心路历程
2015/02/26 DOTA
python中enumerate的用法实例解析
2014/08/18 Python
利用Psyco提升Python运行速度
2014/12/24 Python
Python使用正则表达式抓取网页图片的方法示例
2017/04/21 Python
Python科学画图代码分享
2017/11/29 Python
Python 12306抢火车票脚本 Python京东抢手机脚本
2018/02/06 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
Python对列表的操作知识点详解
2019/08/20 Python
TENSORFLOW变量作用域(VARIABLE SCOPE)
2020/01/10 Python
django API 中接口的互相调用实例
2020/04/01 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
2020/11/17 Python
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
2012/11/09 面试题
运动会100米解说词
2014/01/23 职场文书
解除劳动合同协议书
2014/04/14 职场文书
教务处干事工作总结
2015/08/14 职场文书
爱心捐款倡议书:点燃希望,传递温暖
2019/11/04 职场文书
小学四年级作文之人物作文
2019/11/06 职场文书
详解MySQL数据库千万级数据查询和存储
2021/05/18 MySQL
一篇文章了解正则表达式的替换技巧
2022/02/24 Javascript