我有这个文本文件(namelist.txt)生成XML列文本文件的:使用json_decode
{"0":"Mr Tony Test","1":"Ms Tina Testy"}
我尝试将其转换成XML:
<?php
$xml = new DOMDocument();
$names = json_decode(file_get_contents('namelist.txt'));
foreach ($names as $name)
{
$xml_name = $xml->createElement($name);
}
$xml->save("rss.xml");
?>
我得到以下错误:
Fatal error: Uncaught exception 'DOMException' with message 'Invalid Character Error' in C:\xampp\htdocs\xibo\rss.php:6 Stack trace: #0 C:\xampp\htdocs\xibo\rss.php(6): DOMDocument->createElement('Mr Tony Te...') #1 {main} thrown in C:\xampp\htdocs\xibo\rss.php on line 6
这样甚至可能吗?
编辑1:
试图通过@spiky一个解决方案,但我得到了一个空白页面结果:
<?php
$obj=('namelist.txt');
function json_to_xml($obj){
$str = "";
if(is_null($obj))
return "<null/>";
elseif(is_array($obj)) {
//a list is a hash with 'simple' incremental keys
$is_list = array_keys($obj) == array_keys(array_values($obj));
if(!$is_list) {
$str.= "<hash>";
foreach($obj as $k=>$v)
$str.="<item key=\"$k\">".json_to_xml($v)."</item>".CRLF;
$str .= "</hash>";
} else {
$str.= "<list>";
foreach($obj as $v)
$str.="<item>".json_to_xml($v)."</item>".CRLF;
$str .= "</list>";
}
return $str;
} elseif(is_string($obj)) {
return htmlspecialchars($obj) != $obj ? "<![CDATA[$obj]]>" : $obj;
} elseif(is_scalar($obj))
return $obj;
else
throw new Exception("Unsupported type $obj");
}
?>
去走遍:http://stackoverflow.com/questions/856833/is-there-some-way-to-convert-json-to-xml-in- php – rahul
显然我无法在我的环境中安装XML_Serializer。我通过@spiky尝试了答案,但我得到了一个空白页面。 – BlueFox