• 技术文章 >后端开发 >PHP问题

    PHP如何将JSON转换为XML?

    GuanhuiGuanhui2020-07-23 10:54:32原创857

    PHP如何将JSON转换为XML?

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

    $json = file_get_contents('./data.js');

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

    $data = json_decode($json, true);

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

    $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中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php
    上一篇:php怎么实现关闭网站 下一篇:php无法加载动态库怎么办
    大前端线上培训班

    相关文章推荐

    • php如何替换word内容• PHP汉字出现乱码如何解决?• php eclipse乱码怎么办• Ubuntu系统下的PHP环境如何搭建?• php如何删除session文件?

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网