如何使用PHP将JSON转换为XML?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
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);
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。