迭代器仅获取 JavaFX 中的第一个元素

Iterator only gets first Element in JavaFX

我想知道为什么我的迭代器在从 XML reader

获取列表时只获取第一个元素

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

它只有一个元素(恐怖)

希望有人能帮助我。 打孔

假设rootNode是你文档的根目录,那么

List list = rootNode.getChildren("Genre");

将return一个包含Genre节点的大小为1的列表。

迭代此列表当然只会通过 while 主体 运行 一次,gen 指向 Genre 元素。
在此节点上调用 gen.getChildText("Name") 将 return 名为 Name 的第一个子元素的文本内容,returning Horror.

您可能想做的事情:

Element genre = rootNode.getChild("Genre");

Iterator<Element> names = genre.getChildren("Name").iterator();
while (names.hasNext()) {
     String name = names.next().getText();
     ...
}