PHP如何将JSON转换为XML?

Guanhui
发布: 2020-07-23 10:54:32
原创
2820人浏览过

PHP如何将JSON转换为XML?

PHP如何将JSON转换为XML?

首先使用“file_get_content()”函数将JSON数据读取出来;

$json = file_get_contents('./data.js');
登录后复制

然后使用函数“json_decode()”将数据进行解码;

$data = json_decode($json, true);
登录后复制

接着循环数据拼接成XML字符串;最后写入文件中即可。

立即学习PHP免费学习笔记(深入)”;

$string=""; 
foreach($data as $k=>$v){ 
    $string .="<".$k.">"; 
    //取得标签数据 
        $string .=$v; 
    $string .="</".$k.">";  
}
登录后复制

封装示例

<?php
$json = stream_get_contents(STDIN);
$data = @json_decode($json, false);
if (!is_array($data) && !is_object($data)) {
    echo 'ERROR: Invalid JSON given' . PHP_EOL;
    exit(1);
}
class Exporter
{
    private $root = 'document';
    private $indentation = '    ';
    // TODO: private $this->addtypes = false; // type="string|int|float|array|null|bool"
    public function export($data)
    {
        $data = array($this->root => $data);
        echo '<?xml version="1.0" encoding="UTF-8">';
        $this->recurse($data, 0);
        echo PHP_EOL;
    }
    private function recurse($data, $level)
    {
        $indent = str_repeat($this->indentation, $level);
        foreach ($data as $key => $value) {
            echo PHP_EOL . $indent . '<' . $key;
            if ($value === null) {
                echo ' />';
            } else {
                echo '>';
                if (is_array($value)) {
                    if ($value) {
                        $temporary = $this->getArrayName($key);
                        foreach ($value as $entry) {
                            $this->recurse(array($temporary => $entry), $level + 1);
                        }
                        echo PHP_EOL . $indent;
                    }
                } else if (is_object($value)) {
                    if ($value) {
                        $this->recurse($value, $level + 1);
                        echo PHP_EOL . $indent;
                    }
                } else {
                    if (is_bool($value)) {
                        $value = $value ? 'true' : 'false';
                    }
                    echo $this->escape($value);
                }
                echo '</' . $key . '>';
            }
        }
    }
    private function escape($value)
    {
        // TODO:
        return $value;
    }
    private function getArrayName($parentName)
    {
        // TODO: special namding for tag names within arrays
        return $parentName;
    }}$exporter = new Exporter();$exporter->export($data);
登录后复制

推荐教程:《PHP

以上就是PHP如何将JSON转换为XML?的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号