我正在创建一个应用程序,我希望用户能够拥有多个配置文件,但我如何保存配置文件的信息,如字符串和整数。我可以使用XStream创建XML文件,但我不确定如何从XML文件重新创建配置文件。这是我的个人资料代码
class Profile {
String name;
int dartsThrown;
int totalScore;
float average;
int num100, num120, num140, num180;
public Profile(){
}
public Profile(String thename){
name = thename;
}
public void setName(String thename){
name = thename;
}
public String getName(){
return name;
}
public int getDartsThrown(){
return dartsThrown;
}
public int getTotalScore(){
return totalScore;
}
public float getAverage(){
return average;
}
public int get100s(){
return num100;
}
public int get120s(){
return num120;
}
public int get140s(){
return num140;
}
public int get180s(){
return num180;
}
}
如果我有一个包含此文本的XML文件
<Profile>
<name>Mitch</name>
<darts-thrown>100</darts-thrown>
<total-scrore>100</total-scrore>
<average>100.0</average>
<100+>100</100+>
<120+>100</120+>
<140+>100</140+>
<180s>100</180s>
</Profile>
我将如何从XML重新创建配置文件。我想显示有关配置文件的信息,如name,dartsThrown等。那么我怎样才能使用XStream重新创建配置文件?
谢谢
答案 0 :(得分:0)
这不是您的问题的确切答案,因为您可以像这样工作。您的xml文件中的标记<100+>
存在问题,但标记名称应为字符数据或标记。所以我建议在序列化时给它的名称如s100
,s120
....这样它就会将这些标记视为字符数据,您可以使用aliasAttribute方法对其进行反序列化。如果是这样,你可以这样做:
XStream stream = new XStream(new StaxDriver());
stream.alias("Profile", Profile.class);
stream.aliasAttribute(Profile.class, "dartsThrown", "darts-thrown");
stream.aliasAttribute(Profile.class, "totalScore", "total-scrore");
stream.aliasAttribute(Profile.class, "num100", "s100");
................
.................
..................
To access these value convert it using fromXML method
FileReader fileReader = new FileReader("xmlFile.xml");
Profile profile = (Profile)stream.fromXML(fileReader);
System.out.println("Name: "+profile.getName());
..............
..............