• 售前

  • 售后

热门帖子
入门百科

PHP中数组转换为SimpleXML教程

[复制链接]
阿甘cx1982 显示全部楼层 发表于 2021-10-26 13:57:10 |阅读模式 打印 上一主题 下一主题
SimpleXML扩展函数提供了将XML转换为对象的工具集。这些对象处理平凡的属性选择器和数组迭代器。
示例1:
  1. <?php
  2. // 将php数组转换为xml文档的代码
  3. //定义一个将数组转换成xml的函数。
  4. function arrayToXml($array, $rootElement = null, $xml = null) {
  5.   $_xml = $xml;
  6.    
  7.   // 如果没有$rootElement,则插入$rootElement
  8.   if ($_xml === null) {
  9.     $_xml = new SimpleXMLElement($rootElement !== null ? $rootElement : '<root/>');
  10.   }
  11.    
  12.   // 访问所有键值对
  13.   foreach ($array as $k => $v) {
  14.       
  15.     // 如果有嵌套数组
  16.     if (is_array($v)) {
  17.         
  18.       // 调用嵌套数组的函数
  19.       arrayToXml($v, $k, $_xml->addChild($k));
  20.       }
  21.         
  22.     else {
  23.         
  24.         
  25.       $_xml->addChild($k, $v);
  26.     }
  27.   }
  28.    
  29.   return $_xml->asXML();
  30. }
  31.   
  32. // 创建一个用于演示的数组
  33. $my_array = array (
  34. 'name' => 'GFG',
  35. 'subject' => 'CS',
  36.   
  37.   // 创建嵌套数组。
  38.   'contact_info' => array (
  39.   'city' => 'Noida',
  40.   'state' => 'UP',
  41.   'email' => '448199179@qq.com'
  42.   ),
  43. );
  44.   
  45. // 调用arrayToxml函数并打印结果
  46. echo arrayToXml($my_array);
  47. ?>
复制代码
输出:
  1. <?xml version="1.0"?>
  2. <root>
  3.   <name> GFG </name>
  4.   <subject> CS </subject>
  5.   <contact_info >
  6.     <city > Noida < /city >
  7.     <state > UP < /state >
  8.     <email > 448199179@qq.com </email>
  9.   <contact_info>
  10. <root>
复制代码
可以使用array_walk_recursive()函数解决上述题目。此函数将数组转换为xml文档,此中数组的键转换为值,数组的值转换为xml的元素。
示例2:
  1. <?php
  2. // 将php数组转换为xml文档的代码
  3. //创建一个数组
  4. $my_array = array (
  5.   'a' => 'x',
  6.   'b' => 'y',
  7.    
  8.   // creating nested array
  9.   'another_array' => array (
  10.     'c' => 'z',
  11.   ),
  12. );
  13.   
  14. // 这个函数使用root元素创建一个xml对象。
  15. $xml = new SimpleXMLElement('<root/>');
  16.   
  17. // 这个函数重新将数组元素添加到xml文档中
  18. array_walk_recursive($my_array, array ($xml, 'addChild'));
  19.   
  20. // 这个函数打印xml文档。
  21. print $xml->asXML();
  22. ?>
复制代码
输出:
  1. <?xml version =“1.0”?> <root>
  2.     <x> a </ x>
  3.     <y> b </ y>
  4.     <z> c </ z> </ root>
复制代码
注:
假如系统天生错误范例:
  1. PHP Fatal error: Uncaught Error: Class ‘SimpleXMLElement' not found in /home/6bc5567266b35ae3e76d84307e5bdc78.php:24 ,
复制代码
那么只需安装php-xml,php-simplexml软件包。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作