2014-04-04 5 views
0

HTML 파일의 스크립트 태그에 일부 XML (실제로는 전체)을 포함 시켰습니다. 내가 크롬에서 다음을 얻을 $.parseXML(xmlString)를 사용하는 경우jQuery parseXML은 IE에서는 작동하지만 Chrome에서는 작동하지 않습니다.

<script id="xmldata" type="text/xml"> 
<?xml version="1.0"?> 
<?mso-application progid="Excel.Sheet"?> 
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" 
xmlns:o="urn:schemas-microsoft-com:office:office" 
xmlns:x="urn:schemas-microsoft-com:office:excel" 
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" 
xmlns:html="http://www.w3.org/TR/REC-html40"> 
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"> 
    <Author>Nick</Author> 

:

Uncaught Error: Invalid XML: 
<?xml version="1.0"?> 
<?mso-application progid="Excel.Sheet"?> 
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" 
xmlns:o="urn:schemas-microsoft-com:office:office" 
xmlns:x="urn:schemas-microsoft-com:offic...<omitted>... 

을 이상하게도, 그것을 나는 여기에 데이터의 샘플입니다

var xmlString = document.getElementById('xmldata').innerHTML; 

에 의해 공정이 데이터를 잡아 Internet Explorer 11에서 잘 작동합니다. 이미 XML Doc인지 여부를 확인하기 위해 $.isXMLDoc(xmlString)을 사용했지만 False를 반환합니다. Chrome에서이 기능이 작동하지 않는 이유는 무엇입니까?

답변

0

XML 사양에 따르면 <?xml version="1.0"?>과 같은 XML declaration은 파일 시작 부분에만 나타날 수 있으므로 Chrome은 잘못된 XML을 거부하기 만합니다. Internet Explorer는 Chrome보다 다소 느리고이 잘못된 문서를 허용합니다.

HTML 문서에서이 XML 선언을 제거하면 문제를 해결할 수 있습니다.

+0

이것이 문제입니다. 감사! – Bishop