多个重复的子元素 xml

Multiple repeated child elements xml

在这里寻求一点帮助。

我正要使用 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 {
    }
  }
}

我如何管理重复的诗句元素?谢谢=)

使用 List@ElementList-注释。由于 @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 做同样的事情。图书;一本书可能有多个章节等..