0

我刚刚开始使用 AJAX。我有一个关于在 java 脚本中解析 XML 数据的错误检查的查询。实际上我正在使用 C 代码动态创建 XML 文件。有时它会在下一行出现“无法读取子节点”的错误。xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue。所以在使用这一行之前,有什么方法可以检查我的 XML 数据是否包含我正在寻找的所有标签。所以我可以检查并采取适当的行动。

我知道,我应该在创建 XML 文件时提供适当的标签。但是如果我错过了一些时间,那么我希望我的 java 脚本应该检查一下。

我用来读取 XML 的部分代码。

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

xmlhttp.open("GET","note.xml?"+ Math.random(),false);
xmlhttp.send();

xmlDoc=xmlhttp.responseXML;

document.getElementById("to").innerHTML=
xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;

提前致谢...

4

2 回答 2

2

我认为一种方法是

var to = xmlDoc.getElementsByTagName("to")[0]
document.getElementById("to").innerHTML = to && to.childNodes.length ?  to.childNodes[0].nodeValue : '';
于 2013-07-18T05:14:10.297 回答
1

您缺少该onreadystatechange功能。

var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("GET","note.xml?"+ Math.random(),false);

xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
          var xmlDoc = xmlhttp.responseXML;
          document.getElementById("to").innerHTML = xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
    }
}
xmlhttp.send();

确保您没有尝试从w3schools. 使用 MDN学习 AJAX或任何 JavaScript。

于 2013-07-18T05:15:07.180 回答