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&amp;&amp;mysql)三
Oct 09 PHP
PHP4实际应用经验篇(7)
Oct 09 PHP
为IP查询添加GOOGLE地图功能的代码
Aug 08 PHP
MySQL时间字段究竟使用INT还是DateTime的说明
Feb 27 PHP
php中设置index.php文件为只读的方法
Feb 06 PHP
PHP中的常见魔术方法功能作用及用法实例
Jul 01 PHP
php随机显示指定文件夹下图片的方法
Jul 13 PHP
PHP加密解密类实例代码
Jul 20 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
Oct 17 PHP
PHP读取、解析eml文件及生成网页的方法示例
Sep 04 PHP
因str_replace导致的注入问题总结
Aug 08 PHP
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
Apr 11 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入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
2016/09/11 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
PHP设计模式之工厂模式定义与用法详解
2018/04/03 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
Input 特殊事件onpopertychange和oninput
2009/06/17 Javascript
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
按钮接受回车事件的三种实现方法
2014/06/06 Javascript
JavaScript日期时间与时间戳的转换函数分享
2015/01/31 Javascript
每天一篇javascript学习小结(面向对象编程)
2015/11/20 Javascript
详解vue 中使用 AJAX获取数据的方法
2017/01/18 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
Vue按需加载的具体实现
2017/12/02 Javascript
原生js实现表格循环滚动
2020/11/24 Javascript
以一个投票程序的实例来讲解Python的Django框架使用
2016/02/18 Python
Python提取网页中超链接的方法
2016/09/18 Python
python交互式图形编程实例(一)
2017/11/17 Python
python3.7 使用pymssql往sqlserver插入数据的方法
2019/07/08 Python
Flask框架模板渲染操作简单示例
2019/07/31 Python
Python Django 简单分页的实现代码解析
2019/08/21 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
python 多线程中join()的作用
2020/10/29 Python
python中子类与父类的关系基础知识点
2021/02/02 Python
pip install命令安装扩展库整理
2021/03/02 Python
定制别致的瑜伽垫:Sugarmat
2019/06/21 全球购物
饭店工作计划书
2014/01/10 职场文书
市场营销专业大学生职业生涯规划文
2014/03/06 职场文书
电大毕业生自我鉴定
2014/04/10 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
师德师风整改措施
2014/10/24 职场文书
长江三峡导游词
2015/01/31 职场文书
我是特种兵观后感
2015/06/11 职场文书
圣诞晚会主持词
2015/07/01 职场文书
PostgreSQL解析URL的方法
2021/08/02 PostgreSQL