xstream解析xml到实体类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/firewolf1758/article/details/52120665

实体类定义:

public class Pagenums {

@XStreamAsAttribute
private String role;
private String value;
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}

}

转换器定义:

public class PagenumsConverter implements Converter {

public boolean canConvert(Class type) {
// TODO Auto-generated method stub
return AgrPagenums.class.equals(type);
}


public void marshal(Object arg0, HierarchicalStreamWriter arg1, MarshallingContext arg2) {
// TODO Auto-generated method stub
}


public Object unmarshal(HierarchicalStreamReader reader,UnmarshallingContext context) {
AgrPagenums pagenums = new AgrPagenums();


if (reader.getAttributeCount() > 0) {
pagenums.setRole(reader.getAttribute("role"));
}


pagenums.setValue(reader.getValue());
while (reader.hasMoreChildren()) {
throw new ConversionException("cause message :"+ reader.getNodeName());
}
return pagenums;
}
}

xml中对应实体类的文本标签:

################

<pagenums role="pdfpage">79</pagenums>
<pagenums role="bookpage">71</pagenums>

################


说明:转换类中获取标签属性role值和获取标签值的代码不能交换位置否则role的值获取不到。



猜你喜欢

转载自blog.csdn.net/firewolf1758/article/details/52120665
今日推荐