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 相关文章推荐
PHP4(windows版本)中的COM函数
Oct 09 PHP
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
Dec 06 PHP
php 接口类与抽象类的实际作用
Nov 26 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
Jun 04 PHP
PHP通过iconv将字符串从GBK转换为UTF8字符集
Jul 18 PHP
PHP读取文件内容后清空文件示例代码
Mar 18 PHP
phpcms手机内容页面添加上一篇和下一篇
Jun 05 PHP
PHP简单的MVC框架实现方法
Dec 01 PHP
实例讲解yii2.0在php命令行中运行的步骤
Dec 01 PHP
PHP使用curl模拟post上传及接收文件的方法
Mar 04 PHP
php 可变函数使用小结
Jun 12 PHP
php获取是星期几的的一些常用姿势
Dec 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去除重复字的实现代码
2011/09/16 PHP
php解析url的三个示例
2014/01/20 PHP
php常用数学函数汇总
2014/11/21 PHP
微信公众平台开发之配置与请求
2015/08/26 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
2016/10/08 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
分享5个非常有用的Laravel Blade指令
2018/05/30 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
2020/07/24 PHP
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
Lab.js初次使用笔记
2015/02/28 Javascript
jQuery超赞的评分插件(8款)
2015/08/20 Javascript
学习javascript的闭包,原型,和匿名函数之旅
2015/10/18 Javascript
js点击返回跳转到指定页面实现过程
2020/08/20 Javascript
jquery插件格式实例分析
2016/06/16 Javascript
详解webpack解惑:require的五种用法
2017/06/09 Javascript
vue.js异步上传文件前后端实现代码
2017/08/22 Javascript
基于JavaScript实现五子棋游戏
2020/08/26 Javascript
详解Vue 多级组件透传新方法provide/inject
2018/05/09 Javascript
webpack4 SCSS提取和懒加载的示例
2018/09/03 Javascript
详解angular2如何手动点击特定元素上的点击事件
2018/10/16 Javascript
JavaScript实现简单的计算器
2020/01/16 Javascript
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
用python打印菱形的实操方法和代码
2019/06/25 Python
python里glob模块知识点总结
2021/01/05 Python
Made in Design英国:设计家具、照明、家庭装饰和花园家具
2019/09/24 全球购物
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
物流管理毕业生自荐信
2013/10/24 职场文书
高中生的学习总结自我鉴定
2013/10/26 职场文书
建筑工程毕业生自我鉴定
2014/01/14 职场文书
门诊手术室工作制度
2014/01/30 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
公司奖励通知
2015/04/21 职场文书
教师节老师寄语
2015/05/28 职场文书
获奖感言范文
2015/07/31 职场文书