首页 > 解决方案 > 仅获取 XML 列表中的最后一个属性值(Java)

问题描述

我对 XML 和 JAVA 有疑问,让我解释一下:

<xml> 
    <movies>
        <movie Detail="N" type="Horror" />
        <movie Detail="Y" type="Horror" />
    </movies>
</xml>

我想在此 Movie 列表中获取属性 Detail,然后将此值保存在 Value Object 中(带有 Value Object 的部分在这里不感兴趣)

这是我获得这些值的方式:

Element moviesElement = elementXml.getChild("movies");
List<Element> movieElements = moviesElement.getChildren("movie");
String detail= null;

for(Element movieElement : moviesElement) {
    detail= movieElement.getAttributeValue("Detail");
}

问题是它只检索最后一个值,我希望它检索所有值,因为之后我需要它来检查另一个条件

请问我该怎么做才能获得所有值,有人有想法吗?

谢谢

标签: javaxmllistelement

解决方案


您需要将这些结果存储在 List 等集合中,请参阅:

Element moviesElement = elementXml.getChild("movies");
List<Element> movieElements = moviesElement.getChildren("movie");
List<String> details= new ArrayList();

for(Element movieElement : moviesElement) {
    details.add(movieElement.getAttributeValue("Detail"));
}

//this will print every detail in details
for(String detail: details) {
    System.out.println(detail);
}

没有收藏,你就会压倒你的价值观。


推荐阅读