#xstream
Вопрос:
Мне нужно выбрать некоторую информацию из XML, и я использую Xstream. Мне нужна некоторая информация из книг, но не всякая информация.
XML:
<Origin>
<MsgData>
<Transaction>
<Book class="R">
<Title>info 1</Title>
<Author>info 2</Author>
<Pages>info 3</Pages>
<other infos>some other info that i dont need </other infos>
<Local class="R">
...
more info that i dont need
...
</Local>
</Book>
</Transaction>
</MsgData>
</Origin>
Я пытался использовать ignoreUnknownElements()
, но когда я преобразую XML в класс «Origin», который я создал, все атрибуты объекта равны нулю.
Как я могу это сделать?
Ответ №1:
Поэтому я использую некоторые вещи, чтобы заставить его работать. Я создал каждый класс до класса de Book, так что это так:
public class Origin {
private MsgData msgData;
}
public class MsgData {
private Transaction transaction;
}
public class Transaction {
private Book book;
}
public class Book {
private String info1
private String info2
private String info3
}
После этого мне нужно заменить класс=»R» внутри книги тегов.
С помощью Xml я могу сделать replaceAll()
Чем просто делать alias
и aliasField
из созданного XStream и использовать ignoreUnknownElements()
его .
В конце концов, просто сделайте актерский состав
OriginfromXml = (Origin)xstreamCreated.fromXml(stringFromReplaceAll);
Это одно из решений, если у кого-то есть лучший способ сделать это, я опубликую его.