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 相关文章推荐
FCKeditor的安装(PHP)
Jan 13 PHP
PHP实现时间轴函数代码
Oct 08 PHP
Windows下的PHP安装pear教程
Oct 24 PHP
PHP中返回引用类型的方法
Apr 03 PHP
利用PHP生成CSV文件简单示例
Dec 21 PHP
php处理抢购类功能的高并发请求
Feb 08 PHP
PHP中in_array的隐式转换的解决方法
Mar 06 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
May 12 PHP
php xhprof使用实例详解
Apr 15 PHP
Laravel 之url参数,获取路由参数的例子
Oct 21 PHP
PHP autoload使用方法及步骤详解
Sep 05 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
str_replace只替换一次字符串的方法
2013/04/09 PHP
PHP从FLV文件获取视频预览图的方法
2015/03/12 PHP
深入探究PHP的多进程编程方法
2015/08/18 PHP
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
Extjs Gird 支持中文拼音排序实现代码
2013/04/15 Javascript
使用js检测浏览器的实现代码
2013/05/14 Javascript
关于js遍历表格的实例
2013/07/10 Javascript
图片动画横条广告带上下滚动可自定义图片、链接等等
2013/10/20 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
JQuery 传送中文乱码问题的简单解决办法
2016/05/24 Javascript
JavaScript函数节流概念与用法实例详解
2016/06/20 Javascript
一个基于react的图片裁剪组件示例
2018/04/18 Javascript
详解Angular如何正确的操作DOM
2018/07/06 Javascript
Vuex新手的理解与使用详解
2019/05/31 Javascript
JS实现提示框跟随鼠标移动
2019/08/27 Javascript
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
[05:11]TI9战队采访——VIRTUSPRO
2019/08/22 DOTA
python的tkinter布局之简单的聊天窗口实现方法
2014/09/03 Python
Python的Django框架中的数据过滤功能
2015/07/17 Python
PyQt5 pyqt多线程操作入门
2018/05/05 Python
new_zeros() pytorch版本的转换方式
2020/02/18 Python
使用Django清空数据库并重新生成
2020/04/03 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
python利用后缀表达式实现计算器功能
2021/02/22 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
2021/01/27 HTML / CSS
欧洲领先的电子和电信零售商和服务提供商:Currys PC World Business
2017/12/05 全球购物
西班牙家用电器和电子产品购物网站:Mi Electro
2019/02/25 全球购物
英语专业个人求职信范文
2014/02/01 职场文书
体育教师自我鉴定
2014/02/12 职场文书
工程售后服务承诺书
2014/05/21 职场文书
感谢信范文大全
2015/01/23 职场文书
《水浒传》读后感3篇(范文)
2019/09/19 职场文书
详解Redis复制原理
2021/06/04 Redis
MySQL GTID复制的具体使用
2022/05/20 MySQL