javascript - AJax,如何从 XML 文件中的节点获取值

标签 javascript ajax xml

当有人询问特定名称时,我想从 XML 中获取统计信息,但我的 javascript 无法按我想要的方式工作。>br>

这是我的 XML:

<player> 
<forward><name>Joe</name><stats>45</stats></forward> 
<forward><name>Jack</name><stats>42</stats></forward> 
<forward><name>Peter</name><stats>34</stats></forward> 
<forward><name>Steve</name><stats>21</stats></forward>
<goalie><name>Pat</name><stats>2.34</stats></goalie>
</player> 

这是我的 HTML(ajax):

<html>
<head>
<script language="JavaScript">

function LoadDoc(vValue) {
 xmlhttp = new XMLHttpRequest();
 xmlhttp.open("GET", "player.xml",true);
 xmlhttp.onreadystatechange=function() {
 if (xmlhttp.readyState==4) {
  Answer(xmlhttp.responseXML, vValue);
  }
 }
 xmlhttp.send(null);
}

function Answer(doc, ParamValue) {

var counts=doc.getElementsByTagName("forward");
 for(var i=0;i < counts.length; i++){ 
  alert(counts.length)
  var vname = counts[i].getElementsByTagName('name');
  alert(vname[i].firstChild.nodeValue)
  var vstats = counts[i].getElementsByTagName('stats');
  alert(vstats[i].firstChild.nodeValue);
  if (vname[i].firstChild.nodeValue == ParamValue)
  {
        alert(stats[i].firstChild.nodeValue);
  }
 }

}
</script>
</head> 
<body> 
<form> 
<input type="field" id="champ" /> 
<input type="button"        

onclick="javascript:LoadDoc(document.getElementById('champ').value);" /> 
</form> 
</body> 
</html> 

第一个警报很好地找到了 4 个元素
第二个警报给了我乔伊。
第三个警报为我提供了第一个前锋的 45(数字)统计数据

但奇怪的是,警报只启动一次...我没有 4 次警报,为什么它不在循环内转动 4 次? 知道出了什么问题吗?
或者找到统计数据的更好解决方案?

最佳答案

查看控制台是否有任何错误消息。乍一看,行 alert(stats[i].firstChild.nodeValue); 引用了一个未声明的变量 stats,因此如果该行执行,脚本应该抛出一个 ReferenceError并终止,这将导致警报仅触发一次。

关于javascript - AJax,如何从 XML 文件中的节点获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20732607/

相关文章:

javascript - 如果我使用 setAttribute,MutationObserver 会挂起

javascript - 如何从 Slick Slider 中删除类?

javascript - Ajax表单数据未保存在数据库中

xml - Xpath 表达式

java - 在 Java 中解析 GML 时出现错误字符

javascript - 在jquery中添加 float

JavaScript 增强模块 : Why assign IIFE to module when passing module in as argument?

javascript - Ajax 请求 JSON 不起作用?

javascript - jquery .prop() 不适用于带有复选框的下拉菜单

java - fab.setVisibility(View.GONE) 不起作用