﻿// 清空下拉列表
function dropSelectOption(obj) {
    for (var i = obj.options.length - 1; i >= 0; i--) { obj.removeChild(obj.options[i]); }
}

function loadXML(path, isurl) {
    var xmlDoc;
    if (window.ActiveXObject) {
        xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
    }
    else {
        if (document.implementation && document.implementation.createDocument) {//Firefox
            xmlDoc = document.implementation.createDocument("", "doc", null);
            XMLDocument.prototype.selectSingleNode = Element.prototype.selectSingleNode = function (xpath) {
                var x = this.selectNodes(xpath);
                if (!x || x.length < 1) return null;
                return x[0];
            }
            XMLDocument.prototype.selectNodes = Element.prototype.selectNodes = function (xpath) {
                var xpe = new XPathEvaluator();
                var nsResolver = xpe.createNSResolver(this.ownerDocument == null ?
						this.documentElement : this.ownerDocument.documentElement);
                var result = xpe.evaluate(xpath, this, nsResolver, 0, null);
                var found = [];
                var res;
                while (res = result.iterateNext()) {
                    found.push(res);
                }
                return found;
            }
        }
    }
    xmlDoc.async = false;
    xmlDoc.validateOnParse = false;
    if (isurl) {
		if (typeof(xmlDoc.load)=="function"||typeof(xmlDoc.load)=="unknown") {
            xmlDoc.load(path);
        }
        else {//chrome
            
			var xmlHttp = new XMLHttpRequest();
            xmlHttp.open("GET", path, false);
            xmlHttp.send(null);
            xmlDoc = xmlHttp.responseXML.documentElement;
        }
    }
    else {
        try {
            xmlDoc.loadXML(xmlStr);
        }
        catch (e) {
            var oParser = new DOMParser();
            xmlDoc = oParser.parseFromString(path, "text/xml");
        }
    }
    return xmlDoc;
}

// 将一个 xmldom 内容copy到另外一个 xmldom 中
function copyXmlRootElement(sourceXml, targerXml) {
    // 1.清除 targerXml 中的所有子节点;
    if (targerXml.childNodes.length >= 1) {
        targerXml.removeChild(targerXml.lastChild);
    }
    targerXml.appendChild(sourceXml.documentElement);
}

// 将 xml 对象用指定 xsl 文件转译并插入到页面某 id 中
function transXmlFromXsl(xmlobj, xslsrc, objid) {
    var xsldoc = new ActiveXObject("Microsoft.XMLDOM");
    xsldoc.async = false;
    if (!xsldoc.load(xslsrc)) {
        alert('xsl解释文件载入错误！');
        return;
    }

    var node = document.getElementById(objid);
    node.innerHTML = xmlobj.transformNode(xsldoc);
}

// 列表框选项排序后输出
function fnSortSelect(obj) {
    var AryOption = new Array(obj.length);
    for (var i = obj.length - 1; i >= 0; i--) {
        AryOption[i] = new Array(obj.options[i].value, obj.options[i].text);
        obj.options[i] = null;
    }
    AryOption = AryOption.sort();
    for (var i = 0; i < AryOption.length; i++) {
        obj.options[obj.length] = new Option(AryOption[i][1], AryOption[i][0]);
    }
}
