Ok поэтому у меня есть следующий HTML-файл:Загрузка содержимого XML с помощью AJAX
<!DOCTYPE html>
<html>
<style>
table,
th,
td {
border: 1px solid black;
border-collapse: collapse;
}
th,
td {
padding: 5px;
}
</style>
<body>
<button type="button" onclick="loadDoc()">Get the names</button>
<br>
<br>
<table id="demo"></table>
<script>
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
myFunction(xhttp);
}
};
xhttp.open("GET", "names.xml", true);
xhttp.send();
}
function myFunction(xml) {
var i;
var xmlDoc = xml.responseXML;
var table = "<tr><th>Names</th></tr>";
var x = xmlDoc.getElementsByTagName("Names");
for (i = 0; i < x.length; i++) {
table += "<tr><td>" +
x[i].getElementsByTagName("Name")[0].childNodes[0].nodeValue;
}
document.getElementById("demo").innerHTML = table;
}
</script>
</body>
</html>
И следующий файл XML, содержащие имена:
<?xml version="1.0" encoding="UTF-8" ?>
<Names>
<Name>Alex</Name>
<Name>Anna</Name>
<Name>Eva</Name>
<Name>George</Name>
<Name>Jason</Name>
<Name>John</Name>
<Name>Lisa</Name>
<Name>Mary</Name>
<Name>Michael</Name>
<Name>Nick</Name>
<Name>Vicky</Name>
</Names>
И что я хочу, чтобы каким-то образом взять имена из xml-файл и сохранить их внутри массива, а затем распечатать их. Но по какой-то причине только первое имя хранится правильно («Алекс»). Я не понимаю, что я сделал неправильно. Может кто-нибудь мне помочь? Бьюсь об заклад, что что-то не так с myFunction(xml)
, но я не могу найти/исправить его
Используйте Инструменты разработчика в вашем браузере. Посмотрите на консоль. Есть ли ошибки? Что делать, если вы добавляете инструкции console.log? Выполняется ли 'loadDoc' вообще? Выполняется ли 'myFunction' вообще? Является ли значение 'xml' тем, что вы ожидаете? Является ли значение 'x' тем, что вы ожидаете? Является ли значение 'x [i] .getElementsByTagName (" Name ") [0] .childNodes [0] .nodeValue', что вы ожидаете? – Quentin
да я пробовал, но придумал пустой ... –
Что это значит? Вы имеете в виду, что не было ошибок и одно из значений, которые вы тестировали для строки с нулевой длиной? – Quentin