php - 如何将 jSON 转换为 XML

标签 php xml json simplexml

在我开始之前,我知道有很多类似的问题,但请相信我,我阅读了所有问题,如果不是大部分的话。我尝试了很多解决方案,但似乎都不起作用。我的结果是一棵空白的“树”。这是我正在使用的代码。

$jSON = json_decode('array here');

function array2xml($array, $xml = false)
{
    if($xml === false) {
        $xml = new SimpleXMLElement('<result/>');
    }

    foreach($array as $key => $value) {
        if(is_array($value)) {
            array2xml($value, $xml->addChild($key));
        } else {
            $xml->addChild($key, $value);
        }
    }

    return $xml->asXML();
}

这是我正在使用的 jSON 数组。

http://pastebin.com/pN3QwSHU

我不确定为什么它不起作用。这是我使用该函数时的结果。

<result>
<generated_in>155ms</generated_in>
</result>

最佳答案

与其为函数提供对象,不如尝试提供数组:

$jSON = json_decode($raw_data, true);
                            //  ^ add second parameter flag `true`

例子:

function array2xml($array, $xml = false){

    if($xml === false){
        $xml = new SimpleXMLElement('<result/>');
    }

    foreach($array as $key => $value){
        if(is_array($value)){
            array2xml($value, $xml->addChild($key));
        } else {
            $xml->addChild($key, $value);
        }
    }

    return $xml->asXML();
}

$raw_data = file_get_contents('http://pastebin.com/raw.php?i=pN3QwSHU');
$jSON = json_decode($raw_data, true);

$xml = array2xml($jSON, false);

echo '<pre>';
print_r($xml);

Sample Output

关于php - 如何将 jSON 转换为 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26964136/

相关文章:

php - CSV 只导入一定数量然后超过数据进入另一个表

java - 创建按钮网格

Android:解析 JSON 日期

javascript - Nodejs、expressjs - 如何提供延迟响应

java - 从 ant 构建文件中以编程方式检索某些任务

JSON 可选字段而不是必填字段

c# - 使用离线 mySQL 数据库在 Unity for android 中制作游戏

php - 在 MySQL 中创建联系人的历史日志

php - 在 Yii CDbCriteria 语句中使用 CASE

javascript - 在 indesign 脚本中使用 xml 内容标记