使用SimpleXML(或后处理)反序列化时合并到标记

时间:2013-08-20 15:30:32

标签: xml simple-framework

我有一个包含两个不同元素的日期和时间的XML流。我将其反序列化为包含两个String字段的“Match”对象:

@Element
public String MatchDate;

@Element
public String MatchStartTime;

这很好但我想将这两个值合并到一个Calendar对象中,因为我稍后在代码中必须从日期中减去几秒钟。所以我班上还有一个额外的领域:

public Calendar MatchCal;

没有注释,因为它不是XML的一部分。

在初始序列化之后,我可以很容易地浏览列表中的所有元素,如果忽略使用这种方法的性能开销,那么可能就是这样。

但是......在反序列化过程中,可以“动态”填充我的MatchCal对象。

如果是这样的话?

1 个答案:

答案 0 :(得分:1)

根据教程:

http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php#callback

我认为@Commit注释对你有用。这将允许您在反序列化过程完成之前执行逻辑。

e.g。)

@Commit
public void setCalendar() {
    matchCal = new GregorianCalendar();
    // parse and set time, etc
}