我在HTML文件的脚本标记中嵌入了一些(实际上是很多)XML。我抓住这些数据来处理
var xmlString = document.getElementById('xmldata').innerHTML;
以下是数据样本:
<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>
当我使用$.parseXML(xmlString)
时,我在Chrome中获得以下内容:
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>...
奇怪的是,它在Internet Explorer 11中运行良好。我使用$.isXMLDoc(xmlString)
来测试它是否已经是XML Doc,但它返回False。那么什么不适用于Chrome?
答案 0 :(得分:0)
XML规范说,XML declaration之类<?xml version="1.0"?>
可能只出现在文件的开头,因此Chrome只是拒绝无效的XML。
Internet Explorer比Chrome稍微宽松一些,并接受此无效文档。
您的问题的一个可能解决方案是从HTML文档中删除此XML声明。