PHP中的JSON与XML格式怎么转换

今天小编给大家分享一下PHP中的JSON与XML格式怎么转换的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

公司主营业务:做网站、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出十堰郧阳免费做网站回馈大家。

一、JSON转XML

PHP提供了可用于将JSON数据转换成XML格式的函数json_decode()。其语法如下:

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )

其中,$json表示要转换的JSON字符串,$assoc表示是否将JSON对象转换成关联数组(默认为false),$depth表示最大递归深度(默认为512),$options表示转换选项(默认为0)。

下面是一个将JSON数组转换成XML的例子:

');
array_to_xml($php_data, $xml_data);

// 输出XML格式数据
header('Content-type: text/xml');
echo $xml_data->asXML();

// 将数组转换成XML格式的函数
function array_to_xml($arr, &$xml) {
    foreach ($arr as $key => $value) {
        if (is_array($value)) {
            if (!is_numeric($key)) {
                $subnode = $xml->addChild("$key");
                array_to_xml($value, $subnode);
            } else {
                array_to_xml($value, $xml);
            }
        } else {
            $xml->addChild("$key", htmlspecialchars("$value"));
        }
    }
}
?>

上述代码首先将JSON字符串转换成PHP数组,然后再使用递归函数将PHP数组转换成XML格式。

输出XML格式数据如下:



  
    <0>
      David
      20
      
        90
        85
        95
      
    
    <1>
      Tom
      22
      
        80
        75
        85
      
    
  

二、XML转JSON

要将XML格式转换成JSON格式,则需要先将XML转换成PHP数组,再使用json_encode()函数将PHP数组转换成JSON字符串。下面是一个将XML转换成JSON的例子:



  
    <0>
      David
      20
      
        90
        85
        95
      
    
    <1>
      Tom
      22
      
        80
        75
        85
      
    
  
';

// 将XML数据转换成PHP数组
$php_data = xml_to_array(simplexml_load_string($xml_data));

// 将PHP数组转换成JSON字符串
$json_data = json_encode($php_data);

// 输出JSON格式数据
header('Content-type: text/json');
echo $json_data;

// 将XML数据转换成PHP数组的函数
function xml_to_array($xml) {
    $arr = array();
    foreach ($xml->children() as $element) {
        if (count($element->children()) == 0) {
            $arr[$element->getName()] = strval($element);
        } else {
            $arr[$element->getName()][] = xml_to_array($element);
        }
    }
    return $arr;
}
?>

上述代码首先将XML字符串通过simplexml_load_string()函数转换成SimpleXMLElement对象,再通过递归函数将SimpleXMLElement对象转换成PHP数组。最后使用json_encode()函数将PHP数组转换成JSON字符串。

输出JSON格式数据如下:

{
  "students": [
    {
      "name": "David",
      "age": "20",
      "score": {
        "English": "90",
        "Math": "85",
        "Chinese": "95"
      }
    },
    {
      "name": "Tom",
      "age": "22",
      "score": {
        "English": "80",
        "Math": "75",
        "Chinese": "85"
      }
    }
  ]
}

以上就是“PHP中的JSON与XML格式怎么转换”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注创新互联行业资讯频道。


标题名称:PHP中的JSON与XML格式怎么转换
标题链接:http://hbruida.cn/article/gdsdeg.html