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

以下是我需要做的事情:

  • 解析任何给定的字符串,确保其为XML格式
  • 如果是XML格式,则计算节点数。并返回true
  • 如果字符串不是XML,则返回false 我试图使用DOMParser来完成这项工作,但是,不管我给DOMParser的字符串是什么,它总是将其视为XML,并计算它有6个节点

    这是我的剧本:

    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;
      }
    }
    

    谢谢纳文,这很有效。你救了我的命。:-)