Предположим, что у меня есть простой класс Java, как это:Перехватив XSTREAM при разборе XML
public class User {
String firstName;
String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
Теперь предположим, что я хочу разобрать следующий XML:
<user>
<firstName>Homer</firstName>
<lastName>Simpson</lastName>
</user>
я могу сделать это без проблем в XStream:
User homer = (User) xstream.fromXML(xml);
Хорошо, все хорошо до сих пор, но вот моя проблема.
Предположим, что у меня есть следующие XML, что я хочу разобрать:
<user>
<fullName>Homer Simpson</fullName>
</user>
Как я могу преобразовать этот XML в же объекта пользователя с помощью XStream?
Мне нужен способ реализовать какой-то обратный вызов, так что, когда XStream анализирует поле fullName, я могу разделить строку на две части и вручную задать поля имени и фамилии на объекте пользователя. Это возможно?
Обратите внимание, что я не спрашиваю, как разделить строку на две части (это легкая часть), я хочу знать, как перехватывать синтаксический анализ XML, поэтому XStream не пытается отразить поле fullName на пользователе объект (который, очевидно, не существует).
Я посмотрел на конвертеры, которые предоставляет XStream, но не мог понять, как использовать его для этой цели.
Любая помощь будет оценена по достоинству.
Спасибо, я в конечном итоге реализации аналогичного решения с вашими помощью настраиваемого преобразователя. –