PHP中数组转换为SimpleXML教程

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软件包。

(0)

相关推荐

  • php实现xml转换数组的方法示例

    本文实例讲述了php实现xml转换数组的方法.分享给大家供大家参考,具体如下: <?php $info = '<?xml version="1.0" encoding="utf-8" ?> <data> <GeocoderSearchResponse> <status>OK</status> <result> <location> <lat>39.94921<

  • php实现XML和数组的相互转化功能示例

    本文实例讲述了php实现XML和数组的相互转化功能.分享给大家供大家参考,具体如下: 数组转化为xml: function arrtoxml($arr,$dom=0,$item=0){ if (!$dom){ $dom = new DOMDocument("1.0"); } if(!$item){ $item = $dom->createElement("root"); $dom->appendChild($item); } foreach ($arr

  • PHP实现使用DOM将XML数据存入数组的方法示例

    本文实例讲述了PHP实现使用DOM将XML数据存入数组的方法.分享给大家供大家参考,具体如下: <?php $doc = new DOMDocument('1.0','utf-8'); $doc->load("config.xml"); $roots=$doc->documentElement;//获取根节点也就是config(仅有一个) $childs=$roots->childNodes;//获取根节点下所有子节点也就是 db smarty for($i=0

  • PHP简单实现解析xml为数组的方法

    本文实例讲述了PHP简单实现解析xml为数组的方法.分享给大家供大家参考,具体如下: 最近想要做一个插件机制,需要用到xml,在解析xml时候需要转换为数组,特意记录一个此种解析方式 xmlDemo.xml文件: <?xml version="1.0" encoding="UTF-8"?> <main xmlns="http://www.xiaoetongo.cn" versionCode="1.0">

  • PHP数组生成XML格式数据的封装类实例

    本文实例讲述了PHP数组生成XML格式数据的封装类.分享给大家供大家参考,具体如下: 类库代码:MakeXML.php: <?php /** * MakeXML * * @author Lin Jiong(slime09@gmail.com) * @version v1.0 * @license Copyright (c) 2009 Lin Jiong (www.cn09.com) * The LGPL (http://www.gnu.org/licenses/lgpl.html) licens

  • PHP实现的数组和XML文件相互转换功能示例

    本文实例讲述了PHP实现的数组和XML文件相互转换功能.分享给大家供大家参考,具体如下: 最近搞微信支付,微信服务器返回的都是XML文件,所以需要转换成数组,才会便于操作,好了话不多说,直接上代码: 1. XML转数组 /** * 将xml转为array * @param string $xml xml字符串或者xml文件名 * @param bool $isfile 传入的是否是xml文件名 * @return array 转换得到的数组 */ function xmlToArray($xml

  • PHP中数组转换为SimpleXML教程

    SimpleXML扩展函数提供了将XML转换为对象的工具集.这些对象处理普通的属性选择器和数组迭代器. 示例1: <?php // 将php数组转换为xml文档的代码 //定义一个将数组转换成xml的函数. function arrayToXml($array, $rootElement = null, $xml = null) { $_xml = $xml; // 如果没有$rootElement,则插入$rootElement if ($_xml === null) { $_xml = ne

  • Bash中数组的操作教程

    前言 BASH只支持一维数组,但参数个数没有限制. 如声明一个数组: declare -a array (其实不用声明,按数组方式直接赋值给变量即可,BASH就知道那是数组) 一.定义数组 1. 使用[]操作符 names[0]='zrong' names[1]='jacky' 2. 使用()直接赋值 names=('zrong' 'jacky') # 或 names=([0]='zrong' [1]='jacky') 3. 使用declare -a定义数组.这种方法可以将一个空的变量定义成数组

  • python中numpy包使用教程之数组和相关操作详解

    前言 大家应该都有所了解,下面就简单介绍下Numpy,NumPy(Numerical Python)是一个用于科学计算第三方的Python包. NumPy提供了许多高级的数值编程工具,如:矩阵数据类型.矢量处理,以及精密的运算库.专为进行严格的数字处理而产生.下面本文将详细介绍关于python中numpy包使用教程之数组和相关操作的相关内容,下面话不多说,来一起看看详细的介绍: 一.数组简介 Numpy中,最重要的数据结构是:多维数组类型(numpy.ndarray) ndarray由两部分组成

  • Java中如何将 int[] 数组转换为 ArrayList(list)

    目录 Java中数组转List的四种方式 第一种方式(未必最佳):使用ArrayList.asList(strArray) 第二种方法(支持增删查改): 第三种方式(通过集合工具类Collections.addAll()方法(最高效)) 第四种方式通过JDK8的Stream流将3总基本类型数组转为List java数组转list误区 一.不能把基本数据类型转化为列表 二.asList方法返回的是数组的一个视图 下面介绍下Java中如何将 int[] 数组转换为 List(ArrayList) 前

  • Angular.js中数组操作的方法教程

    前言 前端技术的发展是如此之快,各种优秀技术.优秀框架的出现简直让人目不暇接,紧跟时代潮流,学习掌握新知识自然是不敢怠慢.最近在学习Angular.js,将自己学习的一些经验技巧分享给大家,下面本文将给大家介绍关于Angular.js中数组操作的相关资料,话不多说了,来一起看看详细的介绍. 1:ng-click,ng-model,ng-bind,ng-class,ng-hide,ng-app 2:placeholder, 3:{}中加入代码":true|false",使用逗号隔开,可以

  • Java中数组的定义和使用教程(二)

    数组与方法调用 数组是一个引用数据类型,那么所有的引用数据类型都可以为其设置多个栈内存指向.所以在进行数组操作的时候,也可以将其通过方法进行处理. 范例: 方法接受数组 public class ArrayDemo { public static void main(String args[]) { int data[] = new int[] {1, 2, 3}; printArray(data); } //定义一个专门进行数组输出的方法 public static void printArr

  • Java中数组的定义和使用教程(一)

    数组的基本概念 如果说现在要求你定义100个整型变量,那么如果按照之前的做法,可能现在定义的的结构如下: int i1, i2, i3, ... i100; 但是这个时候如果按照此类方式定义就会非常麻烦,因为这些变量彼此之间没有任何的关联,也就是说如果现在突然再有一个要求,要求你输出这100个变量的内容,意味着你要编写System.out.println()语句100次. 其实所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作.数组本身属于引用数据类型,那么既然是引

  • Java中数组的定义和使用教程(三)

    数组排序 在很多的面试题上都会出现数组排序的操作形式.但是这个时候你千万别写上:java.util.Arrays.sort(数组).而这种排序都是以升序为主. 基础的排序操作: 范例: 冒泡排序 public class ArrayDemo { public static void main(String args[]) { int data[] = new int[] {9, 3, 1, 5, 4, 2, 7, 8, 6, 0}; sort(data); printArray(data); }

  • ES6中数组array新增方法实例总结

    本文实例讲述了ES6中数组array新增方法.分享给大家供大家参考,具体如下: ●find : let arr=[1,2,234,'sdf',-2]; arr.find(function(x){ return x<=2; })//结果:1,返回第一个符合条件的x值 arr.find(function(x,i,arr){ if(x<2){console.log(x,i,arr)} })//结果:1 0 [1, 2, 234, "sdf", -2],-2 4 [1, 2, 23

  • Java8中的 Lambda表达式教程

     1. 什么是λ表达式 λ表达式本质上是一个匿名方法.让我们来看下面这个例子: public int add(int x, int y) { return x + y; } 转成λ表达式后是这个样子: (int x, int y) -> x + y; 参数类型也可以省略,Java编译器会根据上下文推断出来: (x, y) -> x + y; //返回两数之和 或者 (x, y) -> { return x + y; } //显式指明返回值 可见λ表达式有三部分组成:参数列表,箭头(-&g

随机推荐