当XML具有PHP扩展时,浏览器无法正确显示带有CSS的XML

时间:2010-08-02 01:37:19

标签: php css xml

我正在使用PHP文件输出XML文档 我正在使用CSS文件格式化该XML文档 我的浏览器(Safari)不会显示格式,除非我提供带有xml扩展名的文件。我认为标题优先于扩展名。

parser.php(经过php处理)

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/css" href="parser.css"?>
<Main>
<Test>This is some test text that should appear in Blue.</Test>
</Main>

parser.css

Main { 
    background-color: gray;
}
Test {
    color: blue;
}

如果我将php文件的输出保存为xml并在浏览器中查看,那么它会正确显示格式。但是我需要动态生成xml 这是预期的行为吗?我想我可以用php生成一个单独的文件,然后在那里转发浏览器 或者我可以设置我的服务器来解析xml文件,然后只需将我的php文件的扩展名(包含其中的所有代码)更改为XML。但这些似乎都不是必要的。

1 个答案:

答案 0 :(得分:2)

文档以text / html格式返回(因为这是您的服务器作为内容类型标题发送的内容)。您将强制它以XML格式返回,这可以解决您的问题。

// Before you render parser.php...
header('Content-type: text/xml');

这样,无论扩展名如何,您的浏览器都会知道将其呈现为XML。