JS 解析Xml
1 loadXML = function (xmlString) { 2 var xmlDoc = null; 3 //判断浏览器的类型 4 //支持IE浏览器 5 if (!window.DOMParser && window.ActiveXObject) { //window.DOMParser 判断是否是非ie浏览器 6 var xmlDomVersions = ['MSXML.2.DOMDocument.6.0', 'MSXML.2.DOMDocument.3.0', 'Microsoft.XMLDOM']; 7 for (var i = 0; i < xmlDomVersions.length; i++) { 8 try { 9 xmlDoc = new ActiveXObject(xmlDomVersions[i]); 10 xmlDoc.async = false; 11 xmlDoc.loadXML(xmlString); //loadXML方法载入xml字符串 12 break; 13 } catch (e) { 14 } 15 } 16 } 17 //支持Mozilla浏览器 18 else if (window.DOMParser && document.implementation && document.implementation.createDocument) { 19 try { 20 /* DOMParser 对象解析 XML 文本并返回一个 XML Document 对象。 21 * 要使用 DOMParser,使用不带参数的构造函数来实例化它,然后调用其 parseFromString() 方法 22 * parseFromString(text, contentType) 参数text:要解析的 XML 标记 参数contentType文本的内容类型 23 * 可能是 "text/xml" 、"application/xml" 或 "application/xhtml+xml" 中的一个。注意,不支持 "text/html"。 24 */ 25 domParser = new DOMParser(); 26 xmlDoc = domParser.parseFromString(xmlString, 'text/xml'); 27 } catch (e) { 28 } 29 } 30 else { 31 return null; 32 } 33 34 return xmlDoc; 35 }
调用方式:
1 var strDataXml = loadXML(sRtn); 2 3 var rooms = strDataXml.getElementsByTagName("Room"); 4 for (i = 0; i < rooms.length; i++) { 5 var arrRoom = new Array 6 arrRoom[0] = rooms[i].getElementsByTagName("RoomGUID")[0].text; 7 arrRoom[1] = rooms[i].getElementsByTagName("RoomInfo")[0].text; 8 arrRoom[2] = rooms[i].getElementsByTagName("CstName")[0].text; 9 arrRoom[3] = rooms[i].getElementsByTagName("BldArea")[0].text; 10 arrRoom[4] = rooms[i].getElementsByTagName("TnArea")[0].text; 11 arrRoom[5] = rooms[i].getElementsByTagName("AreaStatus")[0].text; 12 arrRoom[6] = rooms[i].getElementsByTagName("BldCjPrice")[0].text; 13 arrRoom[7] = rooms[i].getElementsByTagName("TnCjPrice")[0].text; 14 arrRoom[8] = rooms[i].getElementsByTagName("RmbHtTotal")[0].text; 15 arrRoom[9] = rooms[i].getElementsByTagName("QSDate")[0].text; 16 arrRoom[10] = rooms[i].getElementsByTagName("alterType")[0].text; 17 arrRoom[11] = rooms[i].getElementsByTagName("alterDate")[0].text; 18 19 arrRoom[12] = rooms[i].getElementsByTagName("TradeGUID")[0].text; 20 arrRoom[13] = rooms[i].getElementsByTagName("ContractGUID")[0].text; 21 22 AddRoomToList(arrRoom) 23 }