Я пытаюсь разобрать данные из объекта XML в Java, используя SimpleXML.Смысл всего этого состоял в том, чтобы преобразовать API из JAXB в SimpleXML.Поэтому я использовал аннотационный способ разбора документа.Вот некоторый код:
В классе User:
@Element(name="created", required=false)
private Date created;
Программист, который написал API, использовал DateAdapter, чтобы превратить извлеченную строку из XML непосредственно в дату.Я попытался преобразовать его в SimpleXML.Я предполагаю, что Трансформер использовал тот же подход.Вот этот код до и после ...
До:
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.