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 }

 

posted @ 2016-01-29 11:10  光谷阿祖  阅读(823)  评论(0编辑  收藏  举报