-
PHP中数组转换为SimpleXML教程
在本篇文章中我们给大家总结了一篇关于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软件包。
出处:http://www.phpfensi.com/php/20211106/18420.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式