第一种方案(最稳妥):
先将String格式的xml转换为xml对象,然后再用Jquery解析xml对象
var returnDataXml = parseXML(returnData); var param = $(returnDataXml).find("param"); for(i=0;i<param .length;i++){ var paramName = $(param[i]).attr("name"); var rDescription = $(param[i]).attr("rDescription"); var format = $(param [i]).attr("format"); } function parseXML (xmlStr) { if(typeof($.browser)== "undefined"){ if (!!navigator.userAgent.match(/Trident/7./)){// IE11 xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = "false"; xmlDoc.loadXML(xmlStr); }else{ var parser = new DOMParser(); xmlDoc = parser.parseFromString(xmlStr, "text/xml"); } }else{ if($.browser.msie){// IE xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = "false"; xmlDoc.loadXML(xmlStr); }else{// Other var parser = new DOMParser(); xmlDoc = parser.parseFromString(xmlStr, "text/xml"); } } return xmlDoc; }
第二种方案:
直接使用Jquery的$.find()解析String格式的xml。
JQUERY可以将一段字符串转成XML的对象,进而可以使用find()方法对该字符串转成的XML进行节点操作。
注意:此方法不适用于IE9以下的IE浏览器。原因在于:IE中解析出来的是text对象。
var param = $(returnDataXml).find("param"); for(i=0;i<param .length;i++){ var paramName = $(param[i]).attr("name"); var rDescription = $(param[i]).attr("rDescription"); var format = $(param [i]).attr("format"); }
returnData的xml:
<params><param name='搜索' orderby='2' format='类型' rDescription='描述'></param></params>
https://www.runoob.com/jquery/misc-parsexml.html