如果我将 Data.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>
最佳答案
根据文档,您可以使用 @ElementList
[1] 或 @ElementArray
[2]。
关于java - 简单框架 XML 反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19542455/