Таблица XML-данных, использующих цикл for в JavaScript

#javascript #xml

#javascript #xml

Вопрос:

Всем привет, я пытаюсь использовать цикл FOR в Javascript для заполнения таблицы из данных, предоставленных внешним 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. Убедитесь, что для правильного форматирования кода используются кнопки Code ( {} на панели инструментов), или убедитесь, что каждая строка находится через 4 пробела слева.

2. Итак … есть ли какая-то проблема?

3. @Pointy Проблема заключается в способе отображения данных в таблице и строк, которые я использую с циклами for

4. Но, в частности, что не работает; он ничего не отображает, что-то не так, выглядит неправильно — что?

5. Также может помочь пример XML.

Ответ №1:

Могу ли я предложить вам попробовать следующее для отладки вашего кода:

1) Убедитесь, что документ XML действительно загружен в переменную xmlDoc . Выполните alert(xmlDoc) или console.log(xmlDoc) . Его инициализация не показана в вашем коде.

2) Во-вторых, убедитесь, что вы закрыли все скобки. В вашем коде, строка 8, document.write() не закрыт должным образом. Простые ошибки, подобные этим, приведут к сбою всего скрипта. Чтобы просмотреть больше ошибок, попробуйте использовать консоль браузера (в Chrome это CTRL-SHIFT-J, FF amp; IE — F12)

Комментарии:

1. Спасибо за вашу помощь, но я опубликовал только ту часть, которая связана с циклом for и получением элементов из XML, а затем размещением их в таблице, у меня уже есть в моем коде console.log(xmlDoc), и я воспользовался вашим советом, чтобы проверить все ошибки в скрипте, и прямо сейчас это не так.есть какие-либо, но все еще не работают. Есть предложения??