我有一个简单的xml和xslt,当在IE9中打开它时,会添加一个元标记。xml是
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xslt"?>
<root/>xslt添加了一个meta标记,如下所示
<xsl:output method="html" version="5.0" doctype-public="-//W3C//DTD HTML 4.0//EN"/>
<xsl:template match="/">
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<title>Example</title>
</head>
...现在,当我在IE9中打开该文件时,开发人员工具显示它是以IE9标准模式打开的,但是它有两个元标记。显然,IE9在加载和应用xslt的过程中添加了一个。

我想知道两件事:
(1)这是否会影响文件在IE9 (或更早的IE版本)中的显示方式?
(2)为什么IE9要添加第二个元标签,可以避免吗?
发布于 2012-05-08 16:30:30
我对此做了进一步的研究,找到了我正在寻找的答案。
meta http-equiv打算设置http报头字段。因为Content-type和X-UA-Compatible是不同的http报头字段,所以它们不会相互干扰(一个有趣的问题是,如果xslt添加了一个Content-type元标记,而IE9又添加了一个,会发生什么情况)。
当对下载xml文件时接收到的字节顺序标记进行转换时,IE9显然将meta标记添加到html报头中;BOM是utf-16格式,并且因此覆盖了xml报头中的utf-8格式(因此产生了HTML1114消息)。
这种情况可以避免吗?我想不是。
https://stackoverflow.com/questions/10478381
复制相似问题