我必须在 Java 对象中解析 XML,并且 XML 包含一个未包装的对象列表,如下所示:
<main>
<mainPropA>Main Property A</mainPropA>
<mainPropB>Main Property B</mainPropB>
<elements>
<propA>Property A1</propA>
<propB>Property B1</propB>
<propA>Property A2</propA>
<propB>Property B2</propB>
...
</elements>
</main>
所以在这种情况下,我的 Java 代码应该如下所示:
public class MainClass {
private String mainPropA;
private String mainPropB;
private List<Element> elements;
}
public class Element {
private String propA;
private String propB;
}
我不知道如何映射这个。
我尝试了以下映射,并且可以让第一个元素填充到列表中,但不是其他元素。
@XmlRootElement(name = "main")
@XmlAccessorType(XmlAccessType.FIELD)
public class MainClass {
private String mainPropA;
private String mainPropB;
@XmlElement(name = "elements")
private List<Element> elements;
}
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Element {
private String propA;
private String propB;
}
我尝试了各种注释组合,但上面的注释让我最接近看到 null 以外的东西。
有没有办法让它工作?
我无法更改向我发送的 XML,所以它已经过时了。
我正在使用 JAXB,但与它没有任何联系。也使用 Java 7,如果这有什么不同的话。