#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), и я воспользовался вашим советом, чтобы проверить все ошибки в скрипте, и прямо сейчас это не так.есть какие-либо, но все еще не работают. Есть предложения??