我正在尝试加载以下格式的XML文件:
<?xml version="1.0" encoding="ISO-8859-1"?>
<MyCompany>
<Record>
<Surname>
Bird
</Surname>
<Given1>
Andrew
</Given1>
<ID>
225958
</ID>
<BirthDate>
260391
</BirthDate>
<PeerYear>
2009
</PeerYear>
<Title>
</Title>
<Preferred>
Andrew
</Preferred>
<Given2>
Macarthur
</Given2>
<CountryOfBirthCode>
AUS
</CountryOfBirthCode>
<NationalityCode>
</NationalityCode>
<OccupCode>
Retired
</OccupCode>
<Suburb>
Metung
</Suburb>
<State>
Vic
</State>
<PostCode>
3904
</PostCode>
<CountryCode>
AUS
</CountryCode>
<Phone>
</Record>
我尝试阅读,而不是写入该格式,因此我将别名设置为:
m_XStream.alias("MyCompany", MyCompany.class);
m_XStream.alias("Record", Record.class);
Mycompany在哪里:
public class Mycompany
{
@XStreamImplicit
public List<Record> Records = new ArrayList<Record>();
}
Record是一个具有公共成员变量ala的类:
public class Record
{
public String ID;
public String Surname;
}
当我尝试从上面读取XML时,它不会读取任何内容到MyCompany.Records成员变量中。
这样读取XML的正确方法是什么,以及如何忽略不存在成员变量的元素?
谢谢。
答案 0 :(得分:2)
要处理@XStreamImplicit
中的MyCompany
注释,您需要先调用它:
m_XStream.processAnnotations(MyCompany.class);
或者代替注释,你可以这样做:
m_XStream.addImplicitCollection(MyCompany.class, "Records");
答案 1 :(得分:0)
使用@XStreamImplicit(itemFieldName =“Record”)而不是m_XStream.addImplicitCollection(MyCompany.class,“Records”,Record.class)来管理解决它