首页 > 语言 > PHP > 正文

PHP中数组转换为SimpleXML教程

2024-05-05 00:06:21
字体:
来源:转载
供稿:网友

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


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选