如何知道字符串是否包含xml数据或不使用javascript?

时间:2014-05-03 16:56:11

标签: javascript jquery xml

如何知道字符串是否包含XML数据或不使用java脚本?

我正在使用以下代码。

if(str.substr(1,5) == '<?xml')
{
alert("xml data");
}else{
alert('not an xml data');
}

问题有时我的XML(str)数据不包含?xml ............. 标记所以此代码不适用于我

3 个答案:

答案 0 :(得分:0)

我建议在这里使用两种可能的选项:

  1. 这个是使用jquery 1.9.1。您只需将字符串传递给它,它就会尝试解析它。如果完成 - 将返回大于0的长度。否则 - 如果字符串格式不正确,则返回0或抛出异常。 工作样本在这里:http://jsfiddle.net/fqCNL/

  2. 这个是使用javascript DOM Parser。 逻辑很相似。您应该尝试使用解析器解析字符串。如果没有定义firsChild并且firstChildElement本地名称是'parsererror' - 那么它不是xml或无效的xml。如果失败也应该处理异常 - 这也意味着这是简单的字符串,而不是有效的xml。 工作样本在这里:http://jsfiddle.net/MwKcq/ 注意,对于此方法的跨浏览器工作(主要用于IE) - 您必须检查if (window.DOMParser)并且如果它不存在 - 使用另一部分进行解析:
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.loadXML(text);

答案 1 :(得分:0)

function xmpresent(xml){
 try {
 var Resultss = $.xml2json(data.message);
 return true;
 }
 catch (e) { 
 return false;
}
}

答案 2 :(得分:-1)

您可以使用indexOf()

if(str.indexOf('<?xml') != -1){
}else{}