Я пытаюсь использовать цикл for для итерации XML-документа и размещения данных на веб-странице. Я хочу, чтобы этот код выполнял первые четыре записи в XML и отображал их название, дату, время и описание. Код, который я сейчас просматриваю, выглядит следующим образом.Использование цикла for для итерации через xml
<script type="text/javascript">
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","events.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
var i = 0;
for(i = 0; i <4; i++){
document.write("<div style=\"display:block;padding-left:5px;\">");
document.write("<br/>");
document.write("<strong>What:</strong> <span id=\"title\"> </span>");
document.write("<br/>");
document.write("<strong>When:</strong> <span id=\"date\"></span> @ <span id=\"time\"></span>");
document.write("<br/>");
document.write("<strong>Description:</strong> <span id=\"descr\"></span><br/></div>");
document.getElementById("title").innerHTML = xmlDoc.getElementsByTagName("title")[i].childNodes[0].nodeValue;
document.getElementById("date").innerHTML = xmlDoc.getElementsByTagName("date")[i].childNodes[0].nodeValue;
document.getElementById("time").innerHTML =xmlDoc.getElementsByTagName("time")[i].childNodes[0].nodeValue;
document.getElementById("descr").innerHTML =xmlDoc.getElementsByTagName("descr")[i].childNodes[0].nodeValue;}
</script>
И неправильный вывод выглядит следующим образом.
What: Relay for Life Bingo When: N/A @ N/A Description: N/A What: When: @ Description: What: When: @ Description: What: When: @ Description:
Первая запись неверна, поскольку она является четвертым элементом в файле XML, и, как вы можете видеть, остальное пустое. Я новичок в XML, поэтому это, вероятно, ошибка начинающих, но я был бы признателен за некоторые отзывы о том, как заставить это работать.
events.xml
<event>
<title>Relay for Life Wristband Sale</title>
<date>March 26 & 28 </date>
<time>11 A.M - 3 P.M.</time>
<descr>N/A</descr>
</event>
<event>
<title>SHPE/SWE/EC/IEEE Dodgeball Event</title>
<date>April 1 </date>
<time>N/A</time>
<descr>N/A</descr>
</event>
<event>
<title>CH2MHILL Social/GBM</title>
<date>April 2</date>
<time>N/A</time>
<descr>N/A</descr>
</event>
<event>
<title>Relay for Life Bingo</title>
<date>N/A</date>
<time>N/A</time>
<descr>N/A</descr>
</event>
<event>
<title></title>
<date></date>
<time></time>
<descr></descr>
</event>
<event>
<title></title>
<date></date>
<time></time>
<descr></descr>
</event>
<event>
<title></title>
<date></date>
<time></time>
<descr></descr>
</event>
добавьте events.xml также в этом вопросе –
Проблема является 'id' каждого тега в коде вы заменяете первый набор значений, а каждый раз, когда итерация цикла. Вы выбираете элемент с именем 'title'' date 'и т. Д. Они одинаковы во всем элементе, они должны быть уникальными. – iDroid