我有一个类似
的XML文档<thing>
<attr name="one">first</attr>
<attr name="two">second</attr>
<attr name="three">third</attr>
</thing>
我有像这样设置的JAXB类:
public class Thing {
List<Attribute> attr = new ArrayList<Attribute>();
@XmlElement(name="attr")
public List<Attribute> getAttr() { return this.attr; }
public void setAttr(List<Attribute> attr) { this.attr = attr; }
}
public class Attribute {
String value;
String name;
@XmlAttribute
public String getName() { return this.name; }
public void setName(String name) { this.name = name; }
@XmlElement
public String getValue() { return this.value;}
public void setValue(String value) { this.value = value; }
}
当我解组文档时,如果我循环for (Attribute a : thing.getAttr())
执行a.getName()
它会打印“one”,“two”,“three”,但a.getValue()
只是null。 / p>
我是否错误地注释了它?即使我将注释设置为@XmlElement(name="attr")
,它似乎也会做同样的事情。
答案 0 :(得分:0)
这将解决您的问题:
@XmlValue
public String getValue() { return this.value;}
这不是子元素,而是您正在寻找的当前元素值。
编辑:和BTW你应该在Thing类上添加一个@XmlRootElement
注释,以防它丢失。