1

我正在编写一个使用 javascript 从服务器加载 xml 文件的页面,然后解析它。我的代码在 Firefox、Chrome 和 IE10 中运行正常,但在 IE9 中,responseXML 对象的 childNodes 数组只有一项显示“参数数量无效”。我知道 xml 加载正确,因为 firstChild 属性具有正确的名称和值,并且它的 firstChild 属性也有,等等。

我可以重写我的解析代码来处理这个问题,但出于多种原因,我真的不想这样做。

有谁知道我的问题是什么?我还注意到 responseXML 对象的 dataType 和 doctype 属性为空。

我检查了请求 xml 文件时服务器发回的 http 标头,它具有 Content-Type: text/xml。

这是导致问题的我的代码,

var xmlReq = new XMLHttpRequest();
    xmlReq.addEventListener("load", onXmlReqComplete, false);
    xmlReq.addEventListener("error", onXmlReqError, false);
    xmlReq.addEventListener("abort", onXmlReqAbort, false);
    xmlReq.open("get", "tree.xml", true);
    xmlReq.send();


 function onXmlReqComplete(e){
            var xmlResp = this.responseXML;

            //this is the line that causes the error, 
            //SCRIPT5007: Unable to get property 'childNodes' of undefined or null reference 
            var items = xmlResp.childNodes[0].childNodes[1].childNodes;

            for(var i = 0; i < items.length; i++){

                if(items[i].nodeName == "#text"){
                    continue;
                }

                treeData.push(items[i]);

            }

            layoutDisplay();

        }

任何帮助表示赞赏,谢谢

4

0 回答 0