当前位置:首页 > PHP教程 > php数组 > 列表

PHP中数组转换为SimpleXML教程

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-06 18:37:58 浏览: 评论:0 

在本篇文章中我们给大家总结了一篇关于PHP中数组转换为SimpleXML教程内容,有需要的朋友们跟着学习参考下。

SimpleXML扩展函数提供了将XML转换为对象的工具集,这些对象处理普通的属性选择器和数组迭代器。

示例1:

  1. <?php  
  2. // 将php数组转换为xml文档的代码 
  3.    
  4. //定义一个将数组转换成xml的函数。 
  5. function arrayToXml($array$rootElement = null, $xml = null) {  
  6.   $_xml = $xml;  
  7.       
  8.   // 如果没有$rootElement,则插入$rootElement 
  9.   if ($_xml === null) {  
  10.     $_xml = new SimpleXMLElement($rootElement !== null ? $rootElement : '<root/>');  
  11.   }  
  12.       
  13.   // 访问所有键值对  
  14.   foreach ($array as $k => $v) {  
  15.         
  16.     // 如果有嵌套数组  
  17.     if (is_array($v)) {  
  18.           
  19.       // 调用嵌套数组的函数 
  20.       arrayToXml($v$k$_xml->addChild($k));  
  21.       }  
  22.           
  23.     else {  
  24.           
  25.           
  26.       $_xml->addChild($k$v);  
  27.     }  
  28.   }  
  29.       
  30.   return $_xml->asXML();  
  31. }  
  32.     
  33. // 创建一个用于演示的数组  
  34. $my_array = array (  
  35. 'name' => 'GFG',  
  36. 'subject' => 'CS',  
  37.     
  38.   // 创建嵌套数组。 
  39.   'contact_info' => array (  
  40.   'city' => 'Noida',  
  41.   'state' => 'UP',  
  42.   'email' => '448199179@qq.com' 
  43.   ),  
  44. );  
  45.     
  46. // 调用arrayToxml函数并打印结果 
  47. echo arrayToXml($my_array);  
  48. ?> 

输出:

  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_arrayarray ($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> 

注:如果系统生成错误类型:

PHP Fatal error: Uncaught Error: Class ‘SimpleXMLElement' not found in /home/6bc5567266b35ae3e76d84307e5bdc78.php:24 ,

那么只需安装php-xml,php-simplexml软件包。

Tags: PHP数组转换SimpleXML

分享到: