解析器错误
编辑教程解析器错误
当 Firefox 遇到解析器错误,它会载入一个包含错误的 XML 文档。
在 Firefox 中的解析器错误
在您试图打开一个 XML 文档时,就可能发生一个解析器错误(parser-error)。
与 Internet Explorer 浏览器不同,如果 Firefox 遇到错误,它会载入包含错误描述的 XML 文档中。
XML 错误文档的根节点的名称是 "parsererror"。这是用来检查是否有错误。
XML 错误(XML Error)
在下面的代码中,我们会让解析器加载一个形式不良的 XML 文档。
xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.async=false;
xmlDoc.load("note_error.xml");
if (xmlDoc.documentElement.nodeName=="parsererror")
{
errStr=xmlDoc.documentElement.childNodes[0].nodeValue;
errStr=errStr.replace(/</g, "<");
document.write(errStr);
}
else
{
document.write("XML is valid");
}
实例解释:
加载 XML 文件 | |
---|---|
检查根节点的节点名称是否是 "parsererror" | |
把错误字符串载入变量 "errStr" | |
在错误字符串编写为 HTML 之前,把 "<" 字符替换为 "<" |
注意:实际上,只有 Internet Explorer 会用 DTD 检查您的 XML,Firefox 不会。
跨浏览器的错误检查
在这里,我们创建了一个 XML 加载函数,在 Internet Explorer 和 Firefox 中检查解析器错误:
function loadXMLDocErr(dname)
{
try //Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load(dname);
if (xmlDoc.parseError.errorCode != 0)
{
alert("Error in line " + xmlDoc.parseError.line +
" position " + xmlDoc.parseError.linePos +
"nError Code: " + xmlDoc.parseError.errorCode +
"nError Reason: " + xmlDoc.parseError.reason +
"Error Line: " + xmlDoc.parseError.srcText);
return(null);
}
}
catch(e)
{
try //Firefox
{
xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.async=false;
xmlDoc.load(dname);
if (xmlDoc.documentElement.nodeName=="parsererror")
{
alert(xmlDoc.documentElement.childNodes[0].nodeValue);
return(null);
}
}
catch(e) {alert(e.message)}
}
try
{
return(xmlDoc);
}
catch(e) {alert(e.message)}
return(null);
}
实例解释 - Internet Explorer:
第一行创建一个空的微软 XML 文档对象。 | |
---|---|
第二行关闭异步加载,确保在文档完全加载之前解析器不会继续执行脚本。 | |
第三行告知解析器加载名为 "note_error.xml" 的 XML 文档。 | |
如果 parseError 对象的 ErrorCode 属性和 "0" 不同,提醒错误并退出函数。 | |
如果 ErrorCode 属性为 "0",返回 XML 文档。 |
实例解释 - Firefox:
第一行创建一个空的XML文档对象。 | |
---|---|
第二行关闭异步加载,确保在文档完全加载之前解析器不会继续执行脚本。 | |
第三行告知解析器加载名为 "note_error.xml" 的 XML 文档。 | |
如果返回的文档是一个错误的文档,提醒错误并退出函数。 | |
如果没有,则返回 XML 文档。 |
Mos固件,小电视必刷固件
ES6 教程
Vue.js 教程
JSON 教程
jQuery 教程
HTML 教程
HTML 5 教程
CSS 教程
CSS3 教程
JavaScript 教程
DHTML 教程
JSON在线格式化工具
JS在线运行
JSON解析格式化
jsfiddle中国国内版本
JS代码在线运行
PHP代码在线运行
Java代码在线运行
C语言代码在线运行
C++代码在线运行
Python代码在线运行
Go语言代码在线运行
C#代码在线运行
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。
大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
选择支付方式:
立即支付
¥
9.99
无法付款,请点击这里
金额: 0 元
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟