2013-08-05 35 views
3

我有以下XML結構:反序列化的內聯元素列表直接進入名單

<keys> 
    <key> 
     <tag> 
     someValue 
     </tag> 
    </key> 
    <key> 
     <tag> 
     someValue 
     </tag> 
    </key> 
</keys> 

key元素代碼表示在下面的類:

public class Key { 

    @Element(name = "tag") 
    private String tag; 
} 

我的目標是直接反序列化這些成List,是這樣的:

Serializer serializer = new Persister(); 
List<Key> list = serializer.read(Key.class, inputStream); // pseudo code 

我如何用Simple實現這個目標?

回答

3

使用@ElementList註釋,像這樣

@Root(name="keys") 
public class KeyList { 

    @ElementList(inline=true, entry="key") 
    private List<Key> keys; 

    public List<Key> getKeys() { 
     return keys; 
    } 
} 

然後

Persister persister = new Persister(); 
List<Key> keys = persister.read(KeyList.class, source).getKeys(); 
+0

謝謝!它運作良好。我想沒有辦法跳過這個幫助'KeyList'類,我說得對嗎? – WonderCsabo

1

我會建議使用JAXB(Java體系XML綁定)

這裏有一對夫婦的教程鏈接:

他們可以比我更好地解釋它。 但基本上你使用定義你的xml結構的javax.xml.bind.annotation包中定義的註釋。 然後創建一個簡單的JAXB Handler類來處理編組和解組。

+0

謝謝!如果不清楚:我們使用[簡單框架](http://simple.sourceforge.net/),我們不想更改爲另一個, – WonderCsabo

相關問題