多个重复的子元素xml

时间:2015-07-18 04:18:01

标签: java android xml xml-parsing simple-framework

在这里寻求一些帮助。

我准备使用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 个答案:

答案 0 :(得分:0)

$.ajax({ url: "URL.php", type: "post", data: {invoiceData: data}, cache: false, success: function(returnedData) {} }); $invoice_data = trim($_POST['invoiceData']); - 注释一起使用。由于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; // ... } 你可以有一个多节经文的章节 - 但你也可以用例如。图书;一本书可能有多章等。