A Stack<String>
вложенных элементов, таких как книга, глава, абзац, предложение.В начале и конце элемента push/pop
в / из стека запомните предыдущий элемент и поместите повторяющиеся элементы в «массив», a List<Object>
, json [...]
, где Object может быть Map<String, Object>
, json { field: ..., ... }
.
<book>
<author />
<chapter>
<paragraph>
<sentence>
<sentence>
Map
"book" : Map
"author" : String
"chapter" : List
Map
"paragraph" : List
Map
"sentence" : List
String
String
Stack<String> tagNesting = new Stack<>();
String priorTag = "";
Map<String, Object> parentValue;
Обычно каждый элемент представляет собой карту ( LinkedHashMap сохраняет порядок) с записями в виде атрибутов XML и дочерних элементов XML.Поместите атрибуты с ключом "@" + name
, а элементы - просто с ключом name
.
Если элемент повторяется, проверьте предыдущую запись (Карта или уже Список) и объявление к ней, так что естьодин список.