2012-05-07 16 views
0

IE9で開かれたときにメタタグが追加されるxmlとxsltが単純です。 XMLは重複したメタタグ

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="test.xslt"?> 
<root/> 

で、今、私はIE9でファイルを開くと、開発者向けツールは、それがIE9標準モードですべての権利を開くことを示しているが、

<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> 
     ... 

を次のようにXSLTはメタタグを追加しますそれには2つのメタタグがあることを示します。どうやらIE9は、xsltをロードして適用する過程でIE9を追加します。

​​

私は二つのことを疑問に思う:
(1)これは、ファイルがIE9に(またはそれ以前のIEのバージョンで)表示される方法に影響を与えることができますか?
(2)IE9で2番目のメタタグが追加されるのはなぜですか?それは避けられますか?

+0

AFAIK、IE9は、ブラウザ内のXMLドキュメントの表示を容易にするメタタグ/ DOMを追加します。ですから、それは一時的なタグなので、とにかく元のXMLに影響を与えるべきではありません。 – rt2800

+0

元のXMLには影響しません。たぶんあなたは私が "有害な"ことを意味していると思っていたかもしれませんが、私はそれがIE9の表示情報に影響を与えるかどうかを意味しました。これを明確にするために(1)を上記に変更しました。 – Maestro13

答えて

0

これをさらに調査し、私が探していた回答を見つけました。

metahttp-equivは、httpヘッダーフィールドを設定します。 Content-typeとX-UA-Compatibleは異なるHTTPヘッダーフィールドであるため、互いに干渉しません(興味深いのは、xsltがContent-typeメタタグを追加し、IE9が別のタグを追加した場合です) 。

IE9は、xmlファイルのダウンロード時に受信したバイトオーダーマークを変換するときに明らかにhtmlヘッダーにメタタグを追加します。 BOMはutf-16ですので、xmlヘッダのutf-8を上書きします(したがってHTML1114メッセージ)。
これを回避できますか?私はそうは思わない。