我的项目在浏览器中可失常运行,然而Grunt混同时报错。
介绍中说是IE 不反对 DOMParser 对象。IE中应用 Document.loadXML()的 XML 解析。
于是改为Document.loadXML办法解决。
狐疑Grunt不反对DOMParser办法

_Widget.xml = (function($) {   var xml = {      xmlToJson: function(xml, key) {         var childNodes, result;         if(key) {            var keys = key.split("->");            for(var i = 0; i < keys.length; i++) {               if(i == 0) {                  childNodes = xml.getElementsByTagName(keys[i])[0];                } else {                  childNodes = childNodes.getElementsByTagName(keys[i])[0]               }            }         } else {            childNodes = xml;         }         xml = childNodes;         return parse(xml);         function parse(xml) {            var obj = {};             if(xml.nodeType == 1) { // element                  obj["@attributes"] = {};                    for(var j = 0; j < xml.attributes.length; j++) {                         var attribute = xml.attributes.item(j);                         obj["@attributes"][attribute.nodeName] = attribute.nodeValue;            }               }            } else if(xml.nodeType == 3) {                 obj = xml.nodeValue;            }                      if(xml.hasChildNodes()) {               for(var i = 0; i < xml.childNodes.length; i++) {                  var item = xml.childNodes.item(i);                  var nodeName = item.nodeName;                  if(typeof(obj[nodeName]) == "undefined") {                     obj[nodeName] = parse(item);                  } else {                     if(typeof(obj[nodeName].length) == "undefined") {                        var old = obj[nodeName];                        obj[nodeName] = [];                        obj[nodeName].push(old);                }                     obj[nodeName].push(parse(item));                }               }            }            return obj; }      },    jsonToxml: function(json){         if(document.all){            var xmlDom = new ActiveXObject("Microsoft.XMLDOM");            xmlDom.loadXML(json);            return xmlDom;          }else{            return new DOMParser().parseFromString(json, "text/xml");          }      }   }; return xml;})(Zepto);

调用:

                    var xml = _Widget.xml.jsonToxml(res.msg);                    var json = _Widget.xml.xmlToJson(xml);                    var status = json["soap:Envelope"]["soap:Body"]["DoActionResponse"]["DoActionResult"]["#text"];                    var text = json["soap:Envelope"]["soap:Body"]["DoActionResponse"]["ls_output"]["#text"];                    if(status == 1){                        waitHandleView.EventDataChanged.notifyEvent(waitHandleView, {                            "data": JSON.parse(text)                        });                        NavigationView.pushView("waitHandleView")                    }else{                        _Widget.load.show({                            txt: text || "没有获取到患者信息",                            top: 640,                            time: 5                        });                    }