解析XML和Java对象 - 解析属性和值一起
问题描述:
我有一个XML类似于下面的东西,解析XML和Java对象 - 解析属性和值一起
<STANDARD id="1234"> <TOPIC id="111" state_num="ABC111">Reading <TOPIC topicId="222" parent_id="111">Key Ideas and Details</TOPIC> <TOPIC topicId="333" parent_id="111">Key values</TOPIC> </TOPIC> </STANDARD>
Java对象下面类似,
@XStreamAlias("STANDARD")
public class STANDARD {
@XStreamAsAttribute
protected String id;
@XStreamImplicit
protected List<MSS.STANDARD.TOPIC> topic;
@XStreamAlias("TOPIC")
@XStreamConverter(value=ToAttributedValueConverter.class, strings={"value"})
public static class TOPIC {
@XStreamAsAttribute
protected String topicId;
@XStreamAsAttribute
protected String parent_id;
@XStreamAsAttribute
protected String value;
@XStreamImplicit
protected List<STANDARD.TOPIC> topic;
}
}
现在所面临的问题在下文中,
具有“_”键的属性,i父母标识未被解析。
如果我使用XStreamConverter注释,则解析TOPIC的值,但是不会解析存在于TOPIC内的子TOPIC元素。
如果我删除了XStreamConverter注释,可以通过添加隐式注释来获取子主题。但我想同时解析这些值以及子元素。
答
为1.解决方案:
@XStreamAsAttribute
@XStreamAlias("parent_id")
protected String parentId;