使用php将数组转为XML

复制代码
<?php
class Array_to_Xml
{
    private $version  = '1.0';
    private $encoding  = 'UTF-8';
    private $root    = 'root';
    private $xml    = null;
    function __construct()
    {
        $this->xml = new XmlWriter();
    }
    function toXml($data, $eIsArray=FALSE)
    {
        if(!$eIsArray)
        {
            $this->xml->openMemory();
            $this->xml->startDocument($this->version, $this->encoding);
            $this->xml->startElement($this->root);
        }
        foreach($data as $key => $value)
        {
            if(is_array($value))
            {
                $this->xml->startElement($key);
                $this->toXml($value, TRUE);
                $this->xml->endElement();
                continue;
            }
            $this->xml->writeElement($key, $value);
        }
        if(!$eIsArray)
        {
            $this->xml->endElement();
            return $this->xml->outputMemory(true);
        }
    }
}
$res = array(
    'hello' => '11212',
    'world' => '232323',
    'array' => array(
        'test' => 'test',
        'b'  => array('c'=>'c', 'd'=>'d')
    ),
    'a' => 'haha'
);

header("Content-type:text/xml");//输出xml头信息
$xml = new Array_to_Xml();//实例化类
echo $xml->toXml($res);//转为数组
?>
复制代码

效果如图:

posted @   李照耀  阅读(1317)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示