宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

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_contentsSTDIN);
$data = @json_decode$json, false);
if !is_array$data) && !is_object$data)) {
    echo 'ERROR: Invalid JSON given' . PHP_EOL;
    exit1);
}
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->recursearray$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》