我想知道为什么我的Iterator只能从XML阅读器获取List时获取第一个元素
我的XML文件:
<Genre>
<Name>Horror</Name>
<Name>Action</Name>
<Name>Kinderfilm</Name>
<Name>Komödie</Name>
<Name>Splatter</Name>
</Genre>
我的Java代码:
List list = rootNode.getChildren("Genre");
System.out.println("Count Genre: " + list.size());
Iterator i = list.iterator();
while (i.hasNext()) {
Element gen = (Element) i.next();
String name = gen.getChildText("Name");
System.out.println("NAME: " + name);
genre.add(name);
}
它只获得一个元素(恐怖)
希望有人可以帮助我。 冲孔
答案 0 :(得分:2)
假设rootNode
是您文档的根,那么
List list = rootNode.getChildren("Genre");
将返回包含Genre
节点的大小为1的列表。
迭代此列表当然只会在while主体中运行一次,gen
指向Genre
元素。
在此节点上调用gen.getChildText("Name")
将返回名为Name
的第一个子元素的文本内容,并返回Horror
。
你可能想做什么:
Element genre = rootNode.getChild("Genre");
Iterator<Element> names = genre.getChildren("Name").iterator();
while (names.hasNext()) {
String name = names.next().getText();
...
}