问题描述
在这里寻求帮助。
我本打算使用simpleXml解析此xml文件,但我不确定100%如何继续。
这是xml代码的一个片段:
<bible abbrev="ReinaV" name="Reina Valera Actualizada">
<book num="Gen">
<chapter num="1">
<verse num="1">En el principio creó Dios los cielos y la tierra
</verse>
<verse num="2">
Y la tierra estaba sin orden y vacía. Había tinieblas sobre la faz del
océano, y el Espíritu de Dios se movía sobre la faz de las aguas.
</verse>
<verse num="3">Entonces dijo Dios: "Sea la luz", y fue la luz.</verse>
<verse num="4">
Dios vio que la luz era buena, y separó Dios la luz de las tinieblas.
</verse>
</chapter>
</book>
</bible>
这是我到目前为止的内容:
@Root
public class bible {
@Attribute
String abbrev;
@Attribute
String name;
@Element
Book book;
public String getAbbrev() {
return abbrev;
}
public String getName() {
return name;
}
public Book getBook() {
return book;
}
@Root(strict = false)
private class Book {
@Attribute(required = false)
String num;
@Element(required = false)
Chapter chapter;
private class Chapter {
}
}
}
如何管理重复的诗歌元素? 谢谢=)
1楼
将List
与@ElementList
-annotation一起使用。
由于@ElementList
将创建一个包装列表内容的元素,因此请使用inline = true
来防止这种情况。
圣经
@Root(name = "bible")
public class Bible
{
@Attribute
private String name;
@Attribute
private String abbrev;
@Element(required = false)
private Book book;
// ...
}
书
@Root(name = "book")
public class Book
{
@Attribute
private String num;
@Element(required = false)
private Chapter chapter;
// ...
}
章节
@Root(name = "chapter")
public class Chapter
{
@Attribute
private String num;
@ElementList(name = "verse", required = false, inline = true) /* <-- ! */
private List<Verse> verse;
// ...
}
诗
@Root(name = "verse")
public class Verse
{
@Attribute
private String num;
@Text
private String text;
// ...
}
顺便说一句,所有那些required = false
是可选的 ,我已经将它们设置为启用。
一本空书-没有子元素。
如果那没有道理,请删除它们。
使用@ElementList
可以有一章包含多节经文-但是您可以使用eg进行相同的操作。
图书;
一本书可能有多个章节等。