2013-10-23 68 views
0

如果我改變我的Data.xml文件,現在包含兩個分支而不是一個我該如何着手捕捉數組中的對象?簡單框架XML反序列化

當前MainActivity.java文件:

try { 
     Serializer serializer = new Persister(); 
     AssetManager assetManager = getAssets(); 
     InputStream inputStream = assetManager.open("data.xml"); 
     Data d = serializer.read(Data.class, inputStream); 
     System.out.println(d.getPokemon()); 
    } 
    catch (Exception e) { 
     e.printStackTrace(); 
    } 

當前Data.java文件:

@Root(name="Data") 
public class Data { 

    @Element(name="pkmn") 
    private Pokemon pokemon; 

    public Pokemon getPokemon() { 
     return pokemon;   
    } 
} 

當前Pokemon.java文件:

public class Pokemon implements Serializable{ 


    @Element(name="nm") 
    private String name; 
    @Element(name="tp") 
    private String type; 
    @Element(name="ablt") 
    private String abilities; 
    @Element(name="wkns") 
    private String weakness; 
    @Element(name="img") 
    private String image; 

    public Pokemon(){} 
    public Pokemon(String n, String t, String a, String w, String i){ 
     name = n; 
     type = t; 
     abilities = a; 
     weakness = w; 
     image = i; 
    } 
    public String toString() {...} 

當前data.xml文件:

<?xml version = "1.0" encoding = "utf-8" ?> 
<Data> 
<pkmn> 
     <nm>Beedrill</nm> 
     <tp>bug</tp> 
     <ablt>swarm</ablt> 
     <wkns>fire</wkns> 
     <img>beedrill</img> 
    </pkmn> 
<Data> 

新data.xml文件:

<?xml version = "1.0" encoding = "utf-8" ?> 
<Data> 

    <pkmn> 
     <nm>Beedrill</nm> 
     <tp>bug</tp> 
     <ablt>swarm</ablt> 
     <wkns>fire</wkns> 
     <img>beedrill</img> 
    </pkmn> 

    <pkmn> 
     <nm>Blastoise</nm> 
     <tp>water</tp> 
     <ablt>torrent</ablt> 
     <wkns>electric</wkns> 
     <img>blastoise</img> 
    </pkmn> 
</Data> 

回答