PHP中数组转换为SimpleXML教程
程序员文章站
2023-11-28 20:16:52
simplexml扩展函数提供了将xml转换为对象的工具集。这些对象处理普通的属性选择器和数组迭代器。
示例1:
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软件包。