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