java - Multiple repeated child elements xml -
looking bit of here.
i parse xml file using simplexml i´m not 100% sure how procede.
this snippet of xml code:
<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>
this had far:
@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 { } } }
how manage repeating verse elements? =)
use list
@elementlist
-annotation. since @elementlist
create element wrapping list's content, use inline = true
prevent this.
bible
@root(name = "bible") public class bible { @attribute private string name; @attribute private string abbrev; @element(required = false) private book book; // ... }
book
@root(name = "book") public class book { @attribute private string num; @element(required = false) private chapter chapter; // ... }
chapter
@root(name = "chapter") public class chapter { @attribute private string num; @elementlist(name = "verse", required = false, inline = true) /* <-- ! */ private list<verse> verse; // ... }
verse
@root(name = "verse") public class verse { @attribute private string num; @text private string text; // ... }
btw., required = false
optional, have set them enable eg. empty book - no child elements. if wont make sense, remove them.
with @elementlist
can have chapter multiple verse - can same eg. books; book may have multiple chapters etc..
Comments
Post a Comment