国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JS實現兼容各瀏覽器解析XML文檔數據的方法

2024-05-06 16:21:08
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了JS實現兼容各瀏覽器解析XML文檔數據的方法,涉及javascript對XML文件的解析技巧,并根據各瀏覽器進行了相關調整,具有良好的兼容性,需要的朋友可以參考下

本文實例講述了JS實現兼容各瀏覽器解析XML文檔數據的方法。分享給大家供大家參考。具體分析如下:

網站上很多用JS解析XML文檔的資料或多或少都有點問題,

以下是自己總結的代碼,用來解析XML文檔,兼容各個瀏覽器。

parseXMLDOM.js代碼:

 

 
  1. /*  
  2. * 純JS解析XML文檔(兼容各個瀏覽器)  
  3. */ 
  4. function parseXMLDOM(){  
  5. var _browserType = "";  
  6. var _xmlFile = "";  
  7. var _XmlDom = null;  
  8. return {  
  9. "getBrowserType" : function(){  
  10. return _browserType;  
  11. },  
  12. "setBrowserType" : function(browserType){  
  13. _browserType = browserType;  
  14. },  
  15. "getXmlFile" : function(){  
  16. return _xmlFile;  
  17. },  
  18. "setXmlFile" : function(xmlFile){  
  19. _xmlFile = xmlFile;  
  20. },  
  21. "getXmlDom" : function(){  
  22. return _XmlDom;  
  23. },  
  24. "setXmlDom" : function(XmlDom){  
  25. _XmlDom = XmlDom;  
  26. },  
  27. "getBrowserType" : function(){  
  28. var browserType = "";  
  29. if(navigator.userAgent.indexOf("MSIE") != -1){  
  30. browserType = "IE";  
  31. }else if(navigator.userAgent.indexOf("Chrome") != -1){  
  32. browserType = "Chrome";  
  33. }else if(navigator.userAgent.indexOf("Firefox") != -1){  
  34. browserType = "Firefox" 
  35. }  
  36. return browserType;  
  37. },  
  38. "createXmlDom" : function(xmlDom){  
  39. if(this.getBrowserType() == "IE"){//IE瀏覽器  
  40. xmlDom = new ActiveXObject('Microsoft.XMLDOM');  
  41. xmlDom.async = false;  
  42. xmlDom.load(this.getXmlFile());  
  43. }else{  
  44. var xmlhttp = new XMLHttpRequest();  
  45. xmlhttp.open("GET"this.getXmlFile(), false);  
  46. xmlhttp.send(null);  
  47. xmlDom = xmlhttp.responseXML;  
  48. }  
  49. return xmlDom;  
  50. },  
  51. "parseXMLDOMInfo" : function(){  
  52. var xmlDom = this.getXmlDom();  
  53. if(this.getBrowserType() == "IE"){  
  54. var bookObj = xmlDom.selectNodes("books/book");  
  55. if(typeof(bookObj) != "undifined"){  
  56. var strHtml="";  
  57. for(var i = 0; i < bookObj.length; i++){  
  58. strHtml += bookObj[i].selectSingleNode("isbn").text;  
  59. strHtml += " ";  
  60. strHtml += bookObj[i].selectSingleNode("price").text;  
  61. strHtml += " ";  
  62. strHtml += bookObj[i].selectSingleNode("title").text;  
  63. if(i != bookObj.length - 1){  
  64. strHtml += "<br>";  
  65. }  
  66. }  
  67. }  
  68. }else{  
  69. var book = xmlDom.getElementsByTagName("book");  
  70. var strHtml="";  
  71. for(var i = 0;i < book.length;i++){  
  72. strHtml += book[i].getElementsByTagName("isbn")[0].textContent; 
  73. strHtml += " ";  
  74. strHtml += " ";  
  75. strHtml += book[i].getElementsByTagName("price")[0].textContent; 
  76. strHtml += " ";  
  77. strHtml += book[i].getElementsByTagName("title")[0].textContent;  
  78. if(i != book.length - 1){  
  79. strHtml += "<br>";  
  80. }  
  81. }  
  82. }  
  83. document.getElementById("msg").innerHTML = strHtml;  
  84. }  
  85. }  
  86. }  
  87. window.onload = function(){  
  88. var parseObj = new parseXMLDOM();  
  89. //設置瀏覽器類型  
  90. parseObj.setBrowserType(parseObj.getBrowserType());  
  91. //設置文件路徑  
  92. parseObj.setXmlFile("test.xml");  
  93. //創建XMLDOM  
  94. parseObj.setXmlDom(parseObj.createXmlDom(null));  
  95. //解析XMLDOM  
  96. parseObj.parseXMLDOMInfo();  

index.html代碼:

 

 
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  5. <title>JS解析XML文檔中的數據(兼容所有瀏覽器)</title>  
  6. <script language="javascript" type="text/javascript" src="js/parseXMLDOM.js"></script>  
  7. </head>  
  8. <body>  
  9. <span id="msg"></span>  
  10. </body>  
  11. </html> 

test.xml代碼:

 

 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <books>  
  3. <book>  
  4. <isbn>2207-1258-123</isbn>  
  5. <price>25</price>  
  6. <title>Javascript</title>  
  7. </book>  
  8. <book>  
  9. <isbn>2207-1258-456</isbn>  
  10. <price>50</price>  
  11. <title>Ajax</title>  
  12. </book>  
  13. <book>  
  14. <isbn>2207-1258-789</isbn>  
  15. <price>75</price>  
  16. <title>C#</title>  
  17. </book>  
  18. </books> 

希望本文所述對大家的javascript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 随州市| 施秉县| 公安县| 微山县| 平乡县| 大埔区| 永济市| 晋城| 湟源县| 汾阳市| 太保市| 措美县| 南投县| 新丰县| 辽阳市| 桃江县| 德化县| 古丈县| 宁陕县| 绥江县| 泸定县| 锡林郭勒盟| 安康市| 北宁市| 玉山县| 尖扎县| 新和县| 阳信县| 饶河县| 临城县| 长岭县| 上栗县| 富源县| 龙游县| 鄂尔多斯市| 梨树县| 金川县| 黔南| 马关县| 鹤壁市| 永修县|