JavaScript只打印第一行XML文件;忽略其余的

时间:2013-12-02 16:17:27

标签: javascript jquery xml jsp

我正在使用JSP开发一个项目。我有一个XML文件,如下所示:

<people>
    <person>George</person>
    <person>Mary</person>
    <person>John</person>
 </people>

但是,当我尝试从XML文件中提取信息时,它只打印出第一个人的姓名,George;但不是玛丽和约翰。这是我的功能:

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);
    }
}

我在哪里出错?任何帮助,将不胜感激。感谢。

2 个答案:

答案 0 :(得分: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
});

Fiddle

答案 1 :(得分:0)

尝试:

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

Fiddle here.