Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何迭代XML文件并使用JavaScript在HTML网页中显示数据?_Javascript_Html_Xml - Fatal编程技术网

如何迭代XML文件并使用JavaScript在HTML网页中显示数据?

如何迭代XML文件并使用JavaScript在HTML网页中显示数据?,javascript,html,xml,Javascript,Html,Xml,我想迭代一个XML文件,并在HTML网页上显示字段中的数据。目前,我的代码只显示XML文件中的第一个条目 这是我当前的HTML/JS代码,它显示了XML文件中的第一个条目。这是一个html文件: 显示CD(0); 功能显示CD(i){ var xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=函数(){ if(this.readyState==4&&this.status==200){ myFunction(this,i); }

我想迭代一个XML文件,并在HTML网页上显示字段中的数据。目前,我的代码只显示XML文件中的第一个条目

这是我当前的HTML/JS代码,它显示了XML文件中的第一个条目。这是一个html文件:


显示CD(0);
功能显示CD(i){
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
myFunction(this,i);
}
};
open(“GET”,“data.xml”,true);
xmlhttp.send();
}
函数myFunction(xml,i){
var xmlDoc=xml.responseXML;
x=xmlDoc.getElementsByTagName(“联系人”);
document.getElementById(“showCD”).innerHTML=
“姓名:”+
x[i].getElementsByTagName(“名称”)[0].childNodes[0].nodeValue+
“
电子邮件:”+ x[i].getElementsByTagName(“电子邮件”)[0].childNodes[0].nodeValue+ “
电话:”+ x[i].getElementsByTagName(“电话”)[0].childNodes[0].nodeValue; }

您只需循环
x
(它表示所有
标记:

x = xmlDoc.getElementsByTagName("contact");

for (count = 0; count < x.length; count++) {
  document.getElementById("showCD").innerHTML +=
    "Name: " +
    x[count].getElementsByTagName("name")[0].childNodes[0].nodeValue +
    "<br>Email: " +
    x[count].getElementsByTagName("email")[0].childNodes[0].nodeValue +
    "<br>Phone: " + 
    x[count].getElementsByTagName("phone")[0].childNodes[0].nodeValue;
}
x=xmlDoc.getElementsByTagName(“联系人”);
用于(计数=0;计数电子邮件:”+
x[count]。getElementsByTagName(“电子邮件”)[0]。子节点[0]。节点值+
“
电话:”+ x[count].getElementsByTagName(“电话”)[0].childNodes[0].nodeValue; }

另外,正如有人在评论中提到的,使用XSLT可能是一种更简洁的方法,尽管如果您以前没有使用过XSLT,可能会有一些学习曲线。

如果您只是将XML转换为HTML,为什么不使用XSLT?@CD001,IMHO XSLT对一些人来说可能很难学习,它有一个非常不同的范例对于大多数语言来说,理解为什么会发生某些事情并不总是容易的(首先).@NigelRen…也许吧,但这正是它的用途——如果你已经习惯了XML,*耸耸肩*…有趣的是——我妈妈花了几十年时间研究数据库和C,可能忘记了比我知道的更多的东西,她对XML一点也不满意。如果你在研究XML,那么你真的应该不辞辛劳地学习XSLT。有一个初始的学习曲线,但一旦你完成了它,它将比低级的Javscript DOM导航更加简洁和易于维护。谢谢!工作得非常完美。XSLT很可能在目前的水平之上,考虑到我当前的项目是我第一次做XML和Javascript。