Javascript-DomParser-如何确定非XML字符串
以下是我需要做的事情:Javascript-DomParser-如何确定非XML字符串,javascript,xml,nodes,domparser,Javascript,Xml,Nodes,Domparser,以下是我需要做的事情: 解析任何给定的字符串,确保其为XML格式 如果是XML格式,则计算节点数。并返回true 如果字符串不是XML,则返回false 我试图使用DOMParser来完成这项工作,但是,不管我给DOMParser的字符串是什么,它总是将其视为XML,并计算它有6个节点 这是我的剧本: function invoke(msg){ try{ var parser = new DOMParser(); var xmlDoc = parser.parseFromStri
function invoke(msg){
try{
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(msg,"text/xml");
var nodes = xmlDoc.getElementsByTagName('*')
console.log('The string is: ' + msg);
console.log('This string has ' + nodes.length + ' nodes.');
return true;
}
catch(err){
console.log('The string is: ' + msg);
console.log('Cannot read this string');
return false;
}
}
invoke("hello world");
invoke("▒0藤▒]Ir▒|̆x▒$۾▒e▒(E▒>Ӆ▒▒▒ܩ▒b▒b▒▒=▒▒\q▒▒▒▒▒1▒▒▒");
invoke("<music><album>Beethoven</album></music>");
函数调用(msg){
试一试{
var parser=新的DOMParser();
var xmlDoc=parser.parseFromString(msg,“text/xml”);
var nodes=xmlDoc.getElementsByTagName(“*”)
log('字符串为:'+msg);
log('此字符串有'+nodes.length+'个节点');
返回true;
}
捕捉(错误){
log('字符串为:'+msg);
log('无法读取此字符串');
返回false;
}
}
调用(“你好世界”);
调用(“▒0藤▒]红外光谱▒|̆x▒$۾▒E▒(E)▒>Ӆ▒▒▒ܩ▒B▒B▒▒=▒▒\Q▒▒▒▒▒1.▒▒▒");
调用(“
谁能帮忙吗
干杯,
Vincent检查xmlDoc中的解析器错误
function invoke(msg){
try{
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(msg,"text/xml");
if( xmlDoc.getElementsByTagName('parsererror').length ) {
console.log('The string is: ' + msg);
console.log('Cannot read this string');
return false;
} else {
var nodes = xmlDoc.getElementsByTagName('*');
console.log('The string is: ' + msg);
console.log('This string has ' + nodes.length + ' nodes.');
return true;
}
}
catch(err){
console.log('The string is: ' + msg);
console.log('Cannot read this string');
return false;
}
}
谢谢纳文,这很有效。你救了我的命。:-)