我在java(项目,图层,图像)中有三个类,我想将所有这些文件解析为XML,但我在通过JAXB类项目解析该属性为XML时遇到问题,该属性具有来自图层的属性,而图层具有来自图像的属性。 我最终需要什么:
<?xml version="1.0" encoding="UTF-8"?>
<project name="">
<Layer id="1">
<image id="1">
</image>
<image id="2">
</image>
</layer>
<Layer id="2">
<image id="1">
</image>
<image id="2">
</image>
</layer>
<project>
项目类别:
@XmlRootElement
@XmlAccessorType(XmlAccessType.PROPERTY)
public class Project {
private String name;
private Layer[] layer;
@XmlAttribute(name = "name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement(name = "layer")
public Layer[] getLayer() {
return layer;
}
}
图层类别:
public class Layer {
private int id;
private Image[] images;
@XmlElementWrapper(name="Layer")
@XmlAttribute(name="id")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@XmlElement(name="images")
public Image[] getImages() {
return images;
}
public void setImages(Image[] images) {
this.images = images;
}
}
图像类别:
public class Image {
private int id;
@XmlElementWrapper(name="Image")
@XmlAttribute(name="id")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
最佳答案
@XmlElementWrapper
用于向集合添加分组元素。像您一样在非集合属性上使用它是无效的。如果你删除它,事情应该可以工作。
如果您仍然无法解码:
- 填充您的模型并查看 XML 的外观,查看它与输入 XML 的不同之处,并相应地更新您的映射。
- 更新您的问题以包含您遇到的任何异常(exception)情况。
关于java - 如何使用 JAXB 创建和解析 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22728951/