1. 加载文档:
    /*
    @desc 加载XHR文件
    @author lee []
    @param file 文件路径
    @param async 同步或异步 true 异步 flase 同步
    @return xmlDoc 加载后的内容
    */
    function loadDoc(file,async=true){
    var xhr
    var ret
    if(window.XMLHttpRequest){  // code for IE7+, Firefox, Chrome, Opera, Safari
        xhr=new XMLHttpRequest()
    }else{  // code for IE6, IE5
        xhr=new ActiveXObject("Microsoft.XMLHTTP")
    }
    xhr.open("post",file,async)
    // xhr.withCredentials = true
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
    // xhr.setRequestHeader("Authorization", "Basic " + btoa("username:password"))
    xhr.addEventListener('readystatechange',function(){
        if(xhr.readyState < 4){
            // 加载中
        }else if (xhr.readyState == 4 && xhr.status == 200){
            // 成功
            ret=xhr.responseText
        }else{
            // 失败
            xhr.abort()
            ret = false
        }
    })
    xhr.send()
    return ret
    }
  2. 加载字符串:
    /*
    @desc 加载XML文档
    @author lee []
    @param txt 字符串
    @param async 同步或异步 true 同步 flase 异步
    @return xmlDoc 加载后的DOM对象
    */
    function loadStr(txt,async=true){
    var xmlDoc;
    var parser;
    if(window.DOMParser){
        parser=new DOMParser();
        xmlDoc=parser.parseFromString(txt,"text/xml");
    }
    else{  // Internet Explorer
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async=async;
        xmlDoc.loadXML(txt);
    }
    return xmlDoc
    }
  3. 获取第一个元素节点(避免获取到空的节点):
    /*
    @desc 获取第一个元素节点
    @author lee []
    @param name 节点名
    @return node_name 子节点名
    */
    function getElementChild(name){
    var node_name=name.firstChild;
    while (node_name.nodeType!=1){
      node_name=node_name.nextSibling;
    }
    return node_name;
    }