Это запрос:
Select id, title, value, old_title, old_value, new_title, new_value FROM VALUES
Это XML:
<row>
<id>
<title>
<value>
<old_state>
<title>
<value>
</old_state>
<new_state>
<title>
<value>
</new_state>
<row>
Способ, которым я делаю это для существующего XML, заключается в том, что у меня нет new_state
/ old_state
, поэтому я могу просто использовать результат, например. String colName = meta.getColumnLabel(i + 1);
и нет необходимости сопоставлять old_title
с title
. Теперь у меня есть единственное, что приходит на ум, это сделать карту, в которой ключом будет значение счетчика, а значением будет имя нового элемента, например
boolean columnNameIsStartElement = (columStartNames.get(i) != null)?true=false;
boolean columnNameIsEndElement = (columEndNames.get(i) != null)?true=false;
if (columnNameIsStartElement ){
writer.writeStartElement(columStartNames.get(i))
} else if (columnNameIsEndElement){
writer.writeEndElement(columStartNames.get(i))
}
//continue processing the element as usual
Но мне это не нравится. Я бы предпочел использовать XSD как-то так, чтобы решение было более общим и не требовало от меня подсчета строк элементов, чтобы я мог правильно отобразить их (не говоря уже о проблемах, с которыми я столкнусь, если дочерний элемент дополнительный ребенок, как я мог отобразить это? :))