Я использую retrofit2 и простой анализатор xml для анализа значения xml в классе.
Но я никогда не сталкивался с этими встроенными (?) Тегами.API возвращает что-то, но тело ответа имеет значение null.
XML выглядит следующим образом.
<?xml version="1.0" encoding="ISO-8859-1"?>
<Book title="Title Name" ver="20190513001" coverimg="PPO01.jpg" bookcode="PPO01">
<chapters count="1">
<chapter endflag="000" thumbnail="PPO0101_TN.jpg" chaptercode="PPO0101" num="1">
<chaptername>ChapterName</chaptername>
<movies count="1">
<movie num="1" name="Movie Name" url="Some Url" type="AR">
<directions count="0"/>
</movie>
</movies>
</chapter>
</chapters>
</Book>
Мой код ответа для этого выглядит следующим образом.
Корневой объект.
@Root(name = "Book", strict = false)
public class XmlBook implements Serializable {
@Element(name = "title")
private String title;
@Element(name = "ver")
private String ver;
@Element(name = "coverimg")
private String coverimg;
@Element(name = "bookcode")
private String bookcode;
@Element(name = "chapters")
private XmlChapterHeader chapters;
}
Объект 'главы'.
@Root(name = "chapters", strict = false)
public class XmlChapterHeader {
@Element(name = "count")
private int count;
@ElementList(name = "chapter", inline = true)
private List<XmlChapter> chapter;
}
Объект 'глава'.
@Root(name = "chapter", strict = false)
public class XmlChapter {
@Element(name = "num")
private String num;
@Element(name = "chaptercode")
private String chaptercode;
@Element(name = "thumbnail")
private String thumbnail;
@Element(name = "endflag")
private String endflag;
@Element(name = "chaptername")
private String chaptername;
@Element(name = "movies")
private XmlMovieContainer movies;
}
Объект 'фильмы'.
@Root(name = "movies", strict = false)
public class XmlMovieContainer {
@ElementList(name = "movies", inline = true)
List<XmlMovie> movie;
}
Наконец, объект 'movie'.
@Root(name = "movie", strict = false)
public class XmlMovie {
@Element(name = "directions")
private int directions;
}
Я искал в Google эту проблему, но не могу найти правильное решение.Помогите пожалуйста!