gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:01:57 27 4
gpt4 key购买 nike

我想知道为什么我的迭代器在从 XML 读取器获取列表时只获取第一个元素

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

将返回一个大小为 1 的列表,其中包含 Genre 节点。

迭代此列表当然只会在 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();
...
}

关于java - JavaFX 中迭代器仅获取第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34797691/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com