使用JAXB解析XML问题

加入@XmlElementname="extendInfo"不报错了,但xml转为对象时,keyvalue设值不进去,对象转xml没问题。


解析为xml可以,xml转为对象报错。报错截图不方便贴出来
unmarshaller.unmarshal空指针异常,报错不友好,可能贴出来也效果不大。

 /* 总的xml类 */ public class Document { //... 其它字段及其get,set方法 private List<ExtendInfo> extendInfo; //只要加上这个解析XML为对象就报错,但对象解析为xml没问题 @XmlElementWrappername="extendInfos" @XmlElementname="extendInfo" //加上这个就不报错了 public List<ExtendInfo> getExtendInfo { return extendInfo; } public void setExtendInfoList<ExtendInfo> extendInfo { this.extendInfo = extendInfo; } } @XmlTypepropOrder={"key", "value"} public class ExtendInfo { private String key; private String value; @XmlAttribute public String getKey { return key; } public void setKeyString key { this.key = key; } @XmlAttribute public String getValue { return value; } public void setValueString value { this.value = value; } } //XML: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <document> <!-- 其它的标签 --> <extendInfos> <extendInfo key="k1" value="v1"/> <extendInfo key="k2" value="v2"/> </extendInfos> </document>

同样的代码,朋友去试了下是OK的。
于是找到了之前测试dom4j加入了如下的JAR包,是RC版本,经试验有BUG,换个2.0.0版本就没影响了。

<dependency> <groupId>org.dom4j</groupId> <artifactId>dom4j</artifactId> <version>2.0.0-RC1</version>
</dependency> <dependency> <groupId>org.dom4j</groupId> <artifactId>dom4j</artifactId> <version>2.0.0</version>
</dependency>

发表评论

电子邮件地址不会被公开。 必填项已用*标注