2012-05-07 10 views
0

IE9에서 열 때 메타 태그가 추가되는 간단한 xml과 xslt가 있습니다. 하여 XML이중복 메타 태그

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

되고

<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에서 파일을 열 때 XSLT 지금 메타 태그를 추가하지만 그것은 두 개의 메타 태그를 가지고 있습니다. IE9는 xslt를로드하고 적용하는 과정에서 분명히 IE9를 추가합니다.

duplicate meta tag

나는 두 가지 궁금 : (이전 IE 버전에서)
(1)이 영향을 줄 수있는 파일이 IE9에 표시되는 방법을?
(2) IE9가 두 번째 메타 태그를 추가하는 이유는 무엇입니까? 피할 수 있습니까?

+0

AFAIK, IE9는 브라우저/DOM 내부에서 XML 문서의 표시를 용이하게하기 위해 메타 태그를 추가합니다. 그래서 일시적인 태그이고 어쨌든 원본 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 메시지).
이 문제를 피할 수 있습니까? 나는 그렇지 않다.