js 加載 xml 及遍歷屬性及內容 整理


 

以下例子為 加載xml 並讀取屬性及內容 

 

 1 function  inidata()
 2 
 3 {
 4 
 5 var xmlDoc;
 6 //加載xml
 7 xmlDoc = loadXMLDoc("negativeData.xml");
 8 
 9 var htmlstr = new Array();
10 //解析
11 var Negs = xmlDoc.getElementsByTagName("subNeg");
12 console.log("Negs" + Negs.length);
13 $(Negs).each(function (i, v) {
14 htmlstr = new Array();
15 var thead = '<li><div style="height:574px; margin-top:30px;" class="content mCustomScrollbar"><table> <thead><tr><th style="width: 10%; text-align: center;">序號</th><th style="width: 20%; text-align: center;">領域</th><th style="width: 70%; text-align: center;">特別管理措施</th></tr></thead>';
16 htmlstr.push(thead);
17 var category = v.attributes["cate"].textContent;
18 console.log(category);
19 console.log("category" + category);
20 htmlstr.push('<tr><td colspan="3" style="font-size:20px;">' + category + '</td></tr>');
21 var subs = v.getElementsByTagName("neg");
22 $(subs).each(function (si, sv) {
23 var orinfo = sv.attributes["ord"].textContent;
24 var cate = sv.attributes["cate"].textContent;
25 var text =sv.textContent;
26 htmlstr.push('<tr><td scope="row">' + orinfo + '</td><td scope="row">' + cate + '</td><td scope="row" style="padding:10px;">' + text + '</td></tr>');
27 
28 });
29 htmlstr.push("</table></div></li>")
30 $("#datalist").append(htmlstr.join(''));
31 
32 });
33 
34 }
35 
36 function loadXMLDoc(dname) {
37     if (window.XMLHttpRequest) {
38         xhttp = new XMLHttpRequest();
39     } else {
40         xhttp = new ActiveXObject("Microsoft.XMLHTTP");
41     }
42     xhttp.open("GET", dname, false);
43     xhttp.send("");
44     return xhttp.responseXML;
45 }

 

附上xml結構

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <Negative>
 3 <subNeg cate="一、農、林、牧、漁業">
 4 <neg ord="(一)" cate="種業">
 5 
 6 未經批准,禁止采集農作物種質資源。
 7 
 8 </neg>
 9 </subNeg>
10 </Negative>

 

總結為:

獲取xml某個父節點標志獲取其子節點 xmlparentnode.getElementsByTagName("neg")

遍歷子節點 獲取子節點屬性及內容 xmlobj.attributes['name'] 獲取xml 節點屬性對象 xmlobj.textContent

 

在做此功能時發現 xml讀取必須依賴IIS等網站發布環境 直接打開文件則瀏覽器識別xml的屬性方法報錯 不知何故?希望看到的大神能夠告訴我 非常感謝

 

完整demo 需要的 消息我 給我郵箱地址我發郵箱


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM