Я работаю с org.w3c.dom.Document в Java, но кажется, что массивы, с которыми я работаю, неожиданно форматируются, когда я преобразую это в XML-документ. Я считаю, что проблема в том, что мне нужен родительский узел, который содержит элементы массива.
В качестве примера, в настоящее время у меня есть следующий XML в качестве вывода, когда я преобразую документ в строку, используя javax.xml.transform.Transformer:
<parentNode>
<childNodes>
<grandChildNodes>
<object>
<foo/>
</object>
<object>
<foo/>
</object>
</grandChildNodes>
<someAdditionalNode/>
</childNodes>
<childNodes>
<grandChildNodes>
<foo/>
</grandChildNodes>
<grandChildNodes>
<foo/>
</grandChildNodes>
<someAdditionalNode/>
</childNodes>
<someOtherNode/>
</parentNode>
Я бы хотел "обернуть" каждый массив родительским узлом, чтобы следующий результат был конечным:
<parentNode>
<childNodes>
<object>
<grandChildNodes>
<object>
<foo/>
</object>
<object>
<foo/>
</object>
</grandChildNodes>
<someAdditionalNode/>
</object>
<object>
<grandChildNodes>
<object>
<foo/>
</object>
<object>
<foo/>
</object>
</grandChildNodes>
<someAdditionalNode/>
</object>
</childNodes>
<someOtherNode/>
</parentNode>
Как мне это сделать? Я рассмотрел рекурсию (обход XML-дерева, все, что называется одинаково, помещается в родительский узел и меняет их имена и т. Д.), Которое, казалось, быстро усложняется. Я также рассматривал XSLT, но, возможно, я недостаточно знаком с этим.