p; var prefix = ["MSXML3","MSXML2","MSXML","Microsoft"]; for (var i=0;i<prefix.length;i++) { try { var doc = new ActiveXObject(prefix[i] +
".DomDocument"); doc.setProperty("SelectionLanguage","XPath"); return doc; } catch (e) {} } } return null; };
function attachXML() { oDocument = oXML.documentElement; if (!oDocument) { throw new Error('No XML data!'); return; } for (var i=0;i<aSel.length-1;i++){ addEvent(Sel[i], "onchange", function(x) { return function () { doChange(x); } }(i+1)); } doChange(0); };
function selectXMLNode(x) { var sPath = "/*"; var oDoc = oDocument; for (var i=0;i<x;i++) sPath += "/*[" + (Sel[i].selectedIndex+1) + "]"; if (typeof(oDoc.selectSingleNode)!='undefined') return
oDoc.selectSingleNode(sPath); else { var doc=oDoc.nodeType==9?oDoc:oDoc.ownerDocument; var res = doc.createNSResolver(oDoc.nodeType==9?
oDoc.documentElement:oDoc); return doc.evaluate(sPath,oDoc, res, 9, null).singleNodeValue; } };
function addEvent(el, sHandler, fnc) { if (el.attachEvent) { el.attachEvent(sHandler, fnc); } else if (el.addEventListener) { el.addEventListener(sHandler.replace(/on/i, ''), fnc, false); } else { el[sHandler] = fnc; } };
function doChange(n) { var el = selectXMLNode(n); var nodes = el ? el.childNodes :[]; var s = Sel[n]; var f = 0; if (nodes.length>0) { with (s){ length = 0; for (var i = 0,j = 0;i<nodes.length;i++) { if (nodes[i].nodeType!=1)continue; var t = nodes[i].getAttribute("text"); var v = nodes[i].getAttribute("value") ? nodes
[i].getAttribute("value") : t; if (v == store[n]) f = j; options[j++] = new Option(t, v); } options[f].selected = true; } if (++n<Sel.length) doChange(n); } else { for (var i=n; i<Sel.length; i++) { with (Sel[i]) { length = 0; options[0] = new Option('--'); options[0].selected = true; } } } }; };
//-----------------------------xmlselect.js文件结束-------------------------------
由于Xml的操作简便直接,使用起来得心应手。
本人只知一些XML的皮毛知识,如有错误请大家指出。我认为不用什么去了解XML等好多的专业知识,但可以满足我们使用就已经足够了。
在此感谢蒲佛信为我们提供这么优秀的js代码.
此新闻共有3页 上一页 1 2 3 下一页 |