使 loadXML 識別處理函式


因為在寫新的留言板程式時,運用了 XML 來儲存 COLOR 和 ICON 資料,為了方便讀取這兩個 XML 資料,所以就將 loadXML 資料改動了一下,經過直覺上的判斷和努力終於改造成功了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
var xmlDoc;

// Core
function loadXML(xmlFile, funcName) {

xmlFile += "?randnum=" + Math.random();

if (window.ActiveXObject) {

xmlDoc = new ActiveXObject("Microsoft.XMLDOM");

xmlDoc.async=false;
if (xmlDoc.load(xmlFile)) {
xmlDoc.load(xmlFile);
eval(funcName());
}else{
alert('無法載入檔案');
}

}else if (document.implementation && document.implementation.createDocument) {

xmlDoc = document.implementation.createDocument("","",null);

if (xmlDoc.load(xmlFile)) {
xmlDoc.load(xmlFile);
}else{
alert('無法載入檔案');
}
xmlDoc.onload=funcName;

} else {
alert('對不起,你的瀏覽器不支援此程式');
}
}

// Func
function loadListIconFunc() {
var iconData = xmlDoc.getElementsByTagName("iconData")[0];
var info = iconData.getElementsByTagName("info");
var icon = iconData.getElementsByTagName("icon");

total = info.item(0).attributes.item(0).value; // Icon Total

for(var i=0; i<total; i++) {
op = document.createElement("option");
op.innerHTML = icon.item(i).attributes.item(0).value;
op.value = icon.item(i).attributes.item(1).value;

$('icon').appendChild(op);
}

delete iconData, info, icon, op;
total = i = null;

}

// Call
function listIcon(xmlFile) {
loadXML(xmlFile, loadListIconFunc);
}

// Use Example
listIcon("icon.xml");