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简单系统数据添加以及数据删除模块源文件下载
Jun 07 PHP
php array_intersect()函数使用代码
Jan 14 PHP
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
Jun 07 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
Aug 21 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
Oct 30 PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 PHP
PHP小偷程序的设计与实现方法详解
Oct 15 PHP
ThinkPHP下表单令牌错误与解决方法分析
May 20 PHP
PHP 应用容器化以及部署方法
Feb 12 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
Oct 30 PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
Jun 14 PHP
浅谈PHP array_search 和 in_array 函数效率问题
Oct 15 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/12/07 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
Thinkphp中数据按分类嵌套循环实现方法
2014/10/30 PHP
zend framework重定向方法小结
2016/05/28 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
js中cookie的使用详细分析
2008/05/28 Javascript
jquery $.getJSON()跨域请求
2011/12/21 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
2013/08/18 Javascript
javascript中全局对象的parseInt()方法使用介绍
2013/12/19 Javascript
jQuery学习笔记之 Ajax操作篇(二) - 数据传递
2014/06/23 Javascript
javascript实现显示和隐藏div方法汇总
2015/08/14 Javascript
jQuery使用模式窗口实现在主页面和子页面中互相传值的方法
2016/03/01 Javascript
基于javascript实现句子翻牌网页版小游戏
2016/03/23 Javascript
JavaScript实现简单的日历效果
2016/09/25 Javascript
IntersectionObserver API 详解篇
2016/12/11 Javascript
jquery实现多次上传同一张图片
2017/01/09 Javascript
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
vue+django实现一对一聊天功能的实例代码
2019/07/17 Javascript
vue动态设置路由权限的主要思路
2021/01/13 Vue.js
[56:42]完美世界DOTA2联赛循环赛 Matador vs Forest 第二场 11.06
2020/11/06 DOTA
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
Python实现数据库编程方法详解
2015/06/09 Python
在python3环境下的Django中使用MySQL数据库的实例
2017/08/29 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
Python之关于类变量的两种赋值区别详解
2020/03/12 Python
opencv中图像叠加/图像融合/按位操作的实现
2020/04/01 Python
Python高并发解决方案实现过程详解
2020/07/31 Python
基于python的opencv图像处理实现对斑马线的检测示例
2020/11/29 Python
韩国江南富人区高端时尚百货商场:Galleria(格乐丽雅)
2018/03/27 全球购物
委托书的格式
2014/08/01 职场文书
班组拓展活动方案
2014/08/14 职场文书
通知范文怎么写
2015/04/16 职场文书
小学家庭教育心得体会
2016/01/14 职场文书
读《解忧杂货店》有感:请相信一切都是最好的安排
2019/11/07 职场文书