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中的正规表达式(二)
Oct 09 PHP
深入解析PHP的引用计数机制
Jun 14 PHP
ThinkPHP中的关联模型注意点
Jun 16 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
Aug 05 PHP
php中get_object_vars()方法用法实例
Feb 08 PHP
php实现根据IP地址获取其所在省市的方法
Apr 30 PHP
phpmailer简单发送邮件的方法(附phpmailer源码下载)
Jun 13 PHP
Thinkphp事务操作实例(推荐)
Apr 01 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
Apr 12 PHP
yii2 在控制器中验证请求参数的使用方法
Jun 19 PHP
详解阿里云视频直播PHP-SDK接入教程
Jul 09 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
用Flash图形化数据(二)
2006/10/09 PHP
WindowsXP中快速配置Apache+PHP5+Mysql
2008/06/05 PHP
PHP IF ELSE简化/三元一次式的使用
2011/08/22 PHP
基于header的一些常用指令详解
2013/06/06 PHP
prettify 代码高亮着色器google出品
2010/12/28 Javascript
uploadify在Firefox下丢失session问题的解决方法
2013/08/07 Javascript
写得不错的jquery table鼠标经过变色代码
2013/09/27 Javascript
基于javascript bootstrap实现生日日期联动选择
2016/04/07 Javascript
JavaScript设计模式开发中组合模式的使用教程
2016/05/18 Javascript
jquery.validate使用详解
2016/06/02 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
JavaScript函数参数的传递方式详解
2017/03/06 Javascript
Mongoose经常返回e11000 error的原因分析
2017/03/29 Javascript
用node-webkit把web应用打包成桌面应用(windows环境)
2018/02/01 Javascript
vue2 全局变量的设置方法
2018/03/09 Javascript
Vue.js实现的表格增加删除demo示例
2018/05/22 Javascript
vuejs选中当前样式active的实例
2018/08/22 Javascript
微信小程序国际化探索实现(附源码地址)
2020/05/20 Javascript
python读写ini文件示例(python读写文件)
2014/03/25 Python
Python 逐行分割大txt文件的方法
2017/10/10 Python
Python文本特征抽取与向量化算法学习
2017/12/22 Python
Python实现12306火车票抢票系统
2019/07/04 Python
python程序中的线程操作 concurrent模块使用详解
2019/09/23 Python
Nili Lotan官网:Nili Lotan同名品牌
2018/01/07 全球购物
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
2012/05/24 面试题
大学生个人求职信范文
2013/09/21 职场文书
室内设计专业个人的自我评价
2013/10/19 职场文书
大学本科毕业生求职信范文
2013/12/18 职场文书
宿舍打麻将检讨书
2014/01/24 职场文书
竞选学生会演讲稿
2014/04/25 职场文书
2014年党支部承诺书
2014/05/30 职场文书
学生自我评语
2015/01/04 职场文书
初中语文教师研修日志
2015/11/13 职场文书
CSS完成视差滚动效果
2021/04/27 HTML / CSS
Golang实现可重入锁的示例代码
2022/05/25 Golang