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

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论