首页 文章

将特定的XML内容加载到HTML

提问于
浏览
0

我正在尝试将特定内容从XML加载到HTML div . 我正在使用带参数的函数来执行此操作 .

这是我的功能调用:

loadDoc("news.xml","destak-article","article");

这应该发送xml文件的请求,获取«article»标签的内容并将其放在«destak-article»div上 .

这是我的函数体:

function loadDoc(url,id,tagname){

    if (window.XMLHttpRequest){
        xmlhttp = new XMLHttpRequest(); // code for IE7+, Firefox, Chrome, Opera, Safari
    } else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); // code for IE6, IE5
    }

    xmlhttp.open("GET",url,false);
    xmlhttp.send();
    xmlDoc = xmlhttp.responseXML;

    document.getElementById(id).innerHTML = xmlDoc.getElementsByTagName(tagname)[0].childNodes[0].nodeValue;
}

但这似乎不起作用 . 在Chrome js控制台上,我收到此错误:

Cannot call method 'getElementsByTagName' of null

在Firebug上我得到:

xmlDoc.getElementsByTagName(tagname)[0] is undefined

任何帮助深表感谢 .

2 回答

  • 0

    您验证了服务器响应吗?在代码中使用一些错误检查 . 例如:

    if (xmlhttp.status == 200) { 
    document.getElementById(id).innerHTML = xmlDoc.getElementsByTagName(tagname)[0].childNodes[0].nodeValue;
    }
    else {
     alert('error');
    }
    
  • 1

    您需要注册一个处理函数,该函数将在请求完成后调用 . 你可以看到example of how to do that here.

    's happening in your case is that you'在发送请求后立即尝试获取 xmlDoc 并且服务器没有时间处理请求并做出响应 .

相关问题