我正在使用PHP根据存储在MySQL数据库中的值输出自定义XML。我在条件开始时有以下内容:
echo '<?xml version="1.0" encoding="UTF-8"?>';
(我也尝试过这种变化:
echo "<?xml version='1.0' encoding='UTF-8'?>";
无济于事。)
然而,这总是输出(在每个浏览器中,甚至在wget
下载的文件中查看时):
<?xml version=1.0 encoding=UTF-8 ?>
沿着这条线的某个地方,版本号和编码周围的单引号被删除了。我哪里出错了,我该怎么做才能解决这个问题?我从我的解析器中得到错误,我相信这是因为这个声明不符合XML标准,即围绕这些值有单引号或双引号。
答案 0 :(得分:1)
我认为这是因为您的文档的内容类型已经设置为text / html(默认情况下是php)。
解决方法是将其设置为标题而不是回显它。
例如:
header ("Content-Type:text/xml");
设置字符集:
header('Content-Type: text/xml; charset=utf-8');
并确保在输出(回显)其他任何内容之前设置此项。
希望有帮助:)