在JavaScript中使用for循环的XML数据表

Table of XML data using for loop in JavaScript

本文关键字:循环 XML 数据表 for JavaScript      更新时间:2023-09-26

大家好,我试图在Javascript中使用FOR循环从外部XML文件给出的数据填充表的脚本是:

    <script type="text/javascript">

        var xmlDoc;
        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","data.xml",false);
            //xmlhttp.send();
            xmlDoc=xmlhttp.responseXML;

        var x=0;
    document.write("<table border='1'>");
    for (var i=0;i<x.numstudents;i++)
      { 
      x=xmlDoc.getElementsByTagName("students");
       var studentstr= "student_"+(i+1);
        stustr= x[i].getElementsByTagName(studentstr)[0].childNodes[0].nodeValue;
        document.write(x[i].getElementsByTagName(studentstr)[0].childNodes[0].nodeValue);
      sum=0;
      for (var j=0;j<numtests;j++)
      {
      var mystr= "test_"+(j+1);
                    document.write("<tr><td>");
      tststr= x[i].getElementsByTagName(mystr)[0].childNodes[0].nodeValue;
                        document.write(x[i].getElementsByTagName(mystr)[0].childNodes[0].nodeValue);
    } 
      }
    document.write("</table>");
        </script>

下面的代码是学生的XML代码之一:

<CATALOG>
        <numstudents>10</numstudents>       
        <numtests>7</numtests>          
 <students>
 <student_1>
            <name> B    </name>
    <test_1>2   </test_1>
    <test_2>2   </test_2>
    <test_3>2   </test_3>
    <test_4>2   </test_4>
    <test_5>2   </test_5>
    <test_6>2   </test_6>
    <test_7>2   </test_7>
</student_1>
</students>
</CATALOG>

我所面临的问题是关于字符串以及如何把它放在表中。谁能提出解决这个问题的建议?注意:我正在尝试学习JavaScript,所以请帮助,不要混淆我。

我建议您尝试以下方法来调试您的代码:

1)检查XML文档是否实际加载到变量xmlDoc中。做一个alert(xmlDoc)console.log(xmlDoc)。它的初始化没有显示在你的代码中。

2)其次,检查是否关闭了所有括号。在代码的第8行中,document.write()没有正确关闭。像这样的简单错误会导致整个脚本崩溃。要查看更多错误,请尝试使用浏览器控制台(在Chrome中,它是CTRL-SHIFT-J, FF &IE F12)