我正在尝试使用 SimpleXML 从 Java 中的 XML 对象中解组数据。整个事情的重点是将 API 从 JAXB 转换为 SimpleXML。因此,我使用了解析文档的注解方式。这是一些代码:
在用户类中:
@Element(name="created", required=false)
private Date created;
编写 API 的程序员使用 DateAdapter 将直接从 XML 中提取的字符串转换为日期。我试图将其转换为 SimpleXML。我的假设是 Transformer 使用了相同的方法。这是之前和之后的代码......
前:
public class DateAdapter extends XmlAdapter<String, Date> {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public Date unmarshal(String date) throws Exception {
return df.parse(date);
}
public String marshal(Date date) throws Exception {
return df.format(date);
}
}
后:
public class DateAdapter implements Transform<Date> {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public Date read(String date) throws Exception {
return df.parse(date);
}
@Override
public String write(Date date) throws Exception {
return df.format(date);
}
}
我认为我做错了转换,因为我现在遇到了不可解析的日期错误。奇怪的是,即使我将 if-else 或 try-catch 块放在 read 和 write 方法中,我仍然会收到错误。
所以我认为主要问题是,我如何正确地编写一个像 JAXB 这样的适配器来编组/解组 XML 中的字符串和 Date 对象。