JavaScript только печатает первую строку XML-файла; Упускает остальное

0

Я работаю над проектом с использованием 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);
    }
}

Где я здесь ошибся? Любая помощь будет оценена по достоинству. Благодарю.

  • 0
    getPeopleTag.length равен 1. Вам нужно getPeopleTag .
  • 0
    Для начала вам может понадобиться использовать .append вместо .html как .html стирает старое содержимое новым содержимым. Также я думаю, что ваша итерация не верна.
Показать ещё 1 комментарий
Теги:
jsp

2 ответа

0

Пытаться:

var xml = getXML();
var txt = "";
$(xml).find("person").each(function(){
    txt += "<div>"+$(this).text()+"</div>";
});
$("body").append(txt);

Заклинай здесь.

0

Поскольку вы уже используете 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
});

скрипка

Ещё вопросы

Сообщество Overcoder
Наверх
Меню