将XML解析为Java对象 - 一起解析属性和值

时间:2014-11-25 02:53:55

标签: java xml parsing xstream

我有一个类似于下面的XML,

<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 Object与下面类似,

@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;
    }
}

我面临以下问题,

  1. 具有“_”键的属性,即未解析parent_id。

  2. 如果我使用XStreamConverter注释,则会解析TOPIC的值,但不会解析TOPIC中存在的子TOPIC元素。

  3. 如果我删除XStreamConverter注释,则可以通过添加隐式注释来解析子主题。但我想同时解析值和子元素。

1 个答案:

答案 0 :(得分:0)

解决方案1.:

@XStreamAsAttribute
@XStreamAlias("parent_id")
protected String parentId;