第一種方案(最穩妥):
先將String格式的xml轉換為xml對象,然后再用Jquery解析xml對象
1 var returnDataXml = parseXML(returnData); 2 var param = $(returnDataXml).find("param"); 3 for(i=0;i<param .length;i++){ 4 var paramName = $(param[i]).attr("name"); 5 var rDescription = $(param[i]).attr("rDescription"); 6 var format = $(param [i]).attr("format"); 7 } 8 9 function parseXML (xmlStr) { 10 if(typeof($.browser)== "undefined"){ 11 if (!!navigator.userAgent.match(/Trident\/7\./)){// IE11 12 xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 13 xmlDoc.async = "false"; 14 xmlDoc.loadXML(xmlStr); 15 }else{ 16 var parser = new DOMParser(); 17 xmlDoc = parser.parseFromString(xmlStr, "text/xml"); 18 } 19 }else{ 20 if($.browser.msie){// IE 21 xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 22 xmlDoc.async = "false"; 23 xmlDoc.loadXML(xmlStr); 24 }else{// Other 25 var parser = new DOMParser(); 26 xmlDoc = parser.parseFromString(xmlStr, "text/xml"); 27 } 28 } 29 return xmlDoc; 30 }
第二種方案:
直接使用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>