Sam*_*war 26
如果您愿意使用PEAR中的XML Serializer,您可以通过两个简单的步骤将JSON转换为PHP对象,然后将PHP对象转换为XML:
include("XML/Serializer.php");
function json_to_xml($json) {
$serializer = new XML_Serializer();
$obj = json_decode($json);
if ($serializer->serialize($obj)) {
return $serializer->getSerializedData();
}
else {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
Tom*_*lak 11
这取决于您希望XML的样子.我会尝试组合json_decode()和PEAR::XML_Serializer(更多信息和sitepoint.com上的示例).
require_once 'XML/Serializer.php';
$data = json_decode($json, true)
// An array of serializer options
$serializer_options = array (
'addDecl' => TRUE,
'encoding' => 'ISO-8859-1',
'indent' => ' ',
'rootName' => 'json',
'mode' => 'simplexml'
);
$Serializer = &new XML_Serializer($serializer_options);
$status = $Serializer->serialize($data);
if (PEAR::isError($status)) die($status->getMessage());
echo '<pre>';
echo htmlspecialchars($Serializer->getSerializedData());
echo '</pre>';
Run Code Online (Sandbox Code Playgroud)
(未经测试的代码 - 但你明白了)
用json_decode它打开JSON 并遍历它以生成你想要的任何XML.
如果您想知道,JSON和XML之间没有规范映射,因此您必须根据应用程序的需要自行编写XML生成代码.
小智 5
我将前两个建议合并到:
/**
* Convert JSON to XML
* @param string - json
* @return string - XML
*/
function json_to_xml($json)
{
include_once("XML/Serializer.php");
$options = array (
'addDecl' => TRUE,
'encoding' => 'UTF-8',
'indent' => ' ',
'rootName' => 'json',
'mode' => 'simplexml'
);
$serializer = new XML_Serializer($options);
$obj = json_decode($json);
if ($serializer->serialize($obj)) {
return $serializer->getSerializedData();
} else {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38196 次 |
| 最近记录: |