如何知道字符串是否包含XML数据或不使用java脚本?
我正在使用以下代码。
if(str.substr(1,5) == '<?xml')
{
alert("xml data");
}else{
alert('not an xml data');
}
问题有时我的XML(str)数据不包含?xml ............. 标记所以此代码不适用于我
答案 0 :(得分:0)
我建议在这里使用两种可能的选项:
这个是使用jquery 1.9.1。您只需将字符串传递给它,它就会尝试解析它。如果完成 - 将返回大于0的长度。否则 - 如果字符串格式不正确,则返回0或抛出异常。 工作样本在这里:http://jsfiddle.net/fqCNL/
这个是使用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{}