【发布时间】:2017-10-24 03:56:53
【问题描述】:
我在 Microsoft EDGE 中使用 Microsoft.XMLDOM XML 解析器时遇到以下错误:
Script(1,1)
有时会显示start tag does not match end tag。有时它会给出另一个错误。我希望我能提供实际的错误消息,但我远离 Windows 机器,这是我记忆中的内容。
完全相同的 XML 内容适用于 Firefox 和其他浏览器。谁能看到发生了什么?这可能是一个简单的修复,但我没有 Windows 计算机。
这是我的 XML:
<s:RichText x="118" visible="true" y="238" text="Text" fontSize="58.73271028037384">
<s:filters>
<BorderStrokeFilter alpha="1" angle="45" blurX="3" blurY="3" color="#FFFFFF" distance="0" hideObject="false" inner="false" knockout="false" multiplier="6" quality="3" strength="30" weight="3" xmlns="library://ns.flexcapacitor.com/flex"/>
<BorderStrokeFilter alpha="1" angle="45" blurX="3" blurY="3" color="#000000" distance="0" hideObject="false" inner="false" knockout="false" multiplier="6" quality="3" strength="30" weight="3" xmlns="library://ns.flexcapacitor.com/flex"/>
</s:filters>
<s:textFlow>
<s:TextFlow whiteSpaceCollapse="preserve" version="3.0.0" xmlns:s="library://ns.adobe.com/flex/spark"><s:p><s:span s:fontWeight="bold">Here is some text</s:span></s:p></s:TextFlow>
</s:textFlow>
</s:RichText>
这是我的验证方法:
function validateXML(txt) {
// code for IE
if (window.ActiveXObject) {
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(txt);
if (xmlDoc.parseError.errorCode != 0) {
txt = "Error Code: " + xmlDoc.parseError.errorCode + "\\n";
txt = txt + "Error Reason: " + xmlDoc.parseError.reason;
txt = txt + "Error Line: " + xmlDoc.parseError.line;
return txt;
}
else {
return "No errors found";
}
}
// Mozilla, Firefox, Opera, etc.
else if (document.implementation.createDocument) {
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(txt, "text/xml");
if (xmlDoc.getElementsByTagName("parsererror").length > 0) {
return xmlDoc.getElementsByTagName("parsererror")[0];
}
else {
return "No errors found";
}
}
else {
return "Your browser does not support XML validation";
}
}
var xml = '<s:RichText x="118"></s:RichText>';
var result = validateXML(xml);
使用 Windows 10 的人可以运行这个吗?我创建了一个代码笔here。
【问题讨论】:
-
你的 codepen 在 Windows 10 上的所有 IE11、Edge、Firefox 和 Chrome 中都失败了,但这不是因为 Windows 10。这是因为你没有声明 URL 来绑定命名空间前缀 @ 987654326@到。我也希望上面更大的 XML 文档由于同样的原因而无法解析。
标签: javascript xml xml-parsing microsoft-edge xmldom