Я работаю над проектом с использованием JSP. У меня есть XML файл, который выглядит так:
<people>
<person>George</person>
<person>Mary</person>
<person>John</person>
</people>
Однако, когда я пытаюсь извлечь информацию из XML файла, он печатает только имя первого человека, Джорджа; но не Мэри и Джон. Вот моя функция:
function Names() {
var xml = getXML(); //This opens the XML file in another method.
var getPeopleTag = xml.getElementsByTagName("people");
for (var i = 0; i < getPeopleTag.length; i++) {
var currentName = getPeopleTag[i];
var getNames = currentName.getElementsByTagName("person")[0].childNodes[0].nodeValue;
$("#printPerson").html(getNames);
}
}
Где я здесь ошибся? Любая помощь будет оценена по достоинству. Благодарю.
Пытаться:
var xml = getXML();
var txt = "";
$(xml).find("person").each(function(){
txt += "<div>"+$(this).text()+"</div>";
});
$("body").append(txt);
Поскольку вы уже используете jQuery, почему бы не использовать его XML-парсер (лучше всего, если вы получите v1.10.2, так как в предыдущих версиях есть ошибка), а затем используйте jQuery, чтобы получить имена людей в документе.
var xmlDoc = $.parseXML(xml);
var $xml = $(xmlDoc);
$xml.find('.person').each(function (){
console.log($(this).text()); // George Mary John
});
getPeopleTag.length
равен 1. Вам нужноgetPeopleTag
..append
вместо.html
как.html
стирает старое содержимое новым содержимым. Также я думаю, что ваша итерация не верна.