Heim > Fragen und Antworten > Hauptteil
加入@XmlElement(name="extendInfo")
不报错了,但xml转为对象
时,key
和value
设值不进去,对象转xml
没问题。
解析为xml
可以,xml
转为对象报错。报错截图不方便贴出来
在unmarshaller.unmarshal()
报空指针异常,报错不友好,可能贴出来也效果不大。
/* 总的xml类 */
public class Document {
//... 其它字段及其get,set方法
private List<ExtendInfo> extendInfo; //只要加上这个解析XML为对象就报错,但对象解析为xml没问题
@XmlElementWrapper(name="extendInfos")
@XmlElement(name="extendInfo") //加上这个就不报错了
public List<ExtendInfo> getExtendInfo() {
return extendInfo;
}
public void setExtendInfo(List<ExtendInfo> extendInfo) {
this.extendInfo = extendInfo;
}
}
@XmlType(propOrder={"key", "value"})
public class ExtendInfo {
private String key;
private String value;
@XmlAttribute
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
@XmlAttribute
public String getValue() {
return value;
}
public void setValue(String 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>
大家讲道理2017-04-17 18:00:05
同样的代码,朋友去试了下是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>