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 高效率写法 推荐
Feb 21 PHP
深入了解PHP类Class的概念
Jun 14 PHP
PHP导航下拉菜单的实现如此简单
Sep 22 PHP
php绘图之生成饼状图的方法
Jan 24 PHP
php中将一个对象保存到Session中的方法
Mar 13 PHP
PHP使用NuSOAP调用Web服务的方法
Jul 18 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
Nov 15 PHP
php实现推荐功能的简单实例
Sep 29 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
Oct 20 PHP
laravel 实现根据字段不同值做不同查询
Oct 23 PHP
关于PHP5.6+版本“No input file specified”问题的解决
Dec 11 PHP
tp5.1框架数据库子查询操作实例分析
May 26 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
对squid中refresh_pattern的一些理解和建议
2009/04/17 PHP
老生常谈PHP 文件写入和读取(必看篇)
2017/05/22 PHP
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
简单选项卡 js和jquery制作方法分享
2014/02/26 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
干货分享:让你分分钟学会javascript闭包
2015/12/25 Javascript
基于Bootstrap重置输入框内容按钮插件
2016/05/12 Javascript
BootStrap网页中代码显示用法详解
2016/10/21 Javascript
BootStrapTable 单选及取值的实现方法
2017/01/10 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
利用node.js如何创建子进程详解
2017/12/09 Javascript
对vue v-if v-else-if v-else 的简单使用详解
2018/09/29 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
vue中封装axios并实现api接口的统一管理
2020/12/25 Vue.js
[43:41]OG vs Newbee 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
更改Python命令行交互提示符的方法
2015/01/14 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
python 生成器生成杨辉三角的方法(必看)
2017/04/10 Python
Python利用splinter实现浏览器自动化操作方法
2018/05/11 Python
在Pycharm中使用GitHub的方法步骤
2019/06/13 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
2020/12/07 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
玩具反斗城葡萄牙官方商城:Toys"R"Us葡萄牙
2016/10/21 全球购物
联想哥伦比亚网上商城:Lenovo Colombia
2017/01/10 全球购物
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
高中打架检讨书
2014/02/13 职场文书
幼儿园家长评语大全
2014/04/16 职场文书
创意婚礼策划方案
2014/05/18 职场文书
学雷锋活动总结报告
2014/06/26 职场文书
会员卡清退活动总结
2014/08/27 职场文书
小学班级特色活动方案
2014/08/31 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
JavaScript 去重和重复次数统计
2021/03/31 Javascript
总结一些Java常用的加密算法
2021/06/11 Java/Android
快速学习Oracle触发器和游标
2021/06/30 Oracle
Python开发五子棋小游戏
2022/04/28 Python