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》