2014-11-25 98 views
0

我有一個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; 
    } 
} 

現在所面臨的問題在下文中,

  1. 具有「_」鍵的屬性,i父母標識未被解析。

  2. 如果我使用XStreamConverter註釋,則解析TOPIC的值,但是不會解析存在於TOPIC內的子TOPIC元素。

  3. 如果我刪除了XStreamConverter註釋,可以通過添加隱式註釋來獲取子主題。但我想同時解析這些值以及子元素。

回答

0

爲1.解決方案:

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