前言
提示:本文要记录的大概内容:
利用ActiveXObject
和DOMParser
验证XML文本格式的正确性。主要是提示语法错误和错误位置。
提示:以下是本篇文章正文内容,下面案例可供参考
一、源码
/*
* 验证xml格式的正确性
*/
this.validateXML = function (xmlContent) {
//errorCode 0是xml正确,1是xml错误,2是无法验证
var xmlDoc,errorMessage,errorCode = 0;
// code for IE
if (window.ActiveXObject) {
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(xmlContent);
if (xmlDoc.parseError.errorCode != 0) {
errorMessage = "错误code: " + xmlDoc.parseError.errorCode + "\n";
errorMessage = errorMessage + "错误原因: " + xmlDoc.parseError.reason;
errorMessage = errorMessage + "错误位置: " + xmlDoc.parseError.line;
errorCode = 1;
} else {
errorCode = 0;
errorMessage = "格式正确";
}
} else if (document.implementation.createDocument) {
var parser = new DOMParser();
xmlDoc = parser.parseFromString(xmlContent,"text/xml");
var error = xmlDoc.getElementsByTagName("parsererror");
if (error.length > 0) {
errorCode = 1;
errorMessage = xmlDoc.getElementsByTagName("parsererror")[0].getElementsByTagName("div")[0].innerText;
var tmp = [];
var keyRexExp = new RegExp('(line 0)', 'gi');
angular.forEach(errorMessage.split(':'), function(msg, index) {
if (index == errorMessage.split(':').length - 1) {
msg = msg.replace(keyRexExp, '');
tmp.push(msg);
} else {
tmp.push(msg);
}
});
errorMessage = tmp.join(':');
} else {
errorCode = 0;
errorMessage = "格式正确";
}
} else {
errorCode = 2;
errorMessage = "浏览器不支持验证,无法验证xml正确性";
}
if (errorCode !== 0) {
return {
retcode: false,
error_msg: errorMessage
};
} else {
return {
retcode: true
};
}
}
总结
提示:这里对文章进行总结:
例如:以上就是本篇文章的主要内容。有关XML的文本格式验证,您还可以到线上工具中进行验证。