У меня есть два XML-файла (источник и место назначения), и я хочу выборочно объединить части источника в место назначения, используя Java.Файлы имеют одинаковую структуру, но содержат вложенные теги с одинаковыми именами на разных уровнях (пример ниже).
У источника и назначения может быть несколько /Root/folders/folder
Я хочу выбрать из источника (с указанной подписью)) и объединить это с тем, что находится в пункте назначения.Если в месте назначения уже есть контент, его нельзя перезаписывать;исходный контент должен быть добавлен.В приведенном ниже примере результат будет содержать <folder caption="TestBlock" description="desc" moniker="">
с несколькими <folders>
. Я не эксперт ни по Java, ни по XML (но босс сказал, что сделайте это, так что ...).
Google показал много примеров выполнения прямого добавления из файла A в файл B, где нет сложных вложенных структур, но они не решают мою проблему.
Исходный файл:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Root signature="{9252F941}" version="11.40">
<folders>
<folder caption="TestBlock" description="desc" moniker="">
<folders>
<folder caption="tb_insert" description="desc" moniker="">
<folders>
<folder caption="000_Test" description="desc" moniker="">
<references>
<ref key="{somekey}" />
</references>
</folder>
</folders>
<references>
<ref key="{somekey}" />
</references>
</folder>
</folders>
</folder>
<folder caption="AnotherBlock" description="desc" moniker="">
<folders>
<folder caption="abc" description="desc" moniker="">
<references>
<ref key="{somekey}" />
</references>
</folder>
</folders>
</folder>
</folders>
</Root>
Файл назначения:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Root signature="{9252F941}" version="11.40">
<folders>
<folder caption="Core" description="desc" moniker="" />
<folder caption="TestBlock" description="desc" moniker="">
<folders>
<folder caption="000_Temp" description="desc" moniker="">
<folders>
<folder caption="000_Temp2" description="desc" moniker="">
<references>
<ref key="{somekey}" />
</references>
</folder>
</folders>
</folder>
</folders>
<references>
<ref key="{somekey}" />
</references>
</folder>
</folders>
</Root>
Желаемый вывод:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Root signature="{9252F941}" version="11.40">
<folders>
<folder caption="Core" description="desc" moniker="" />
<folder caption="TestBlock" description="desc" moniker="">
<folders>
<folder caption="tb_insert" description="desc" moniker="">
<folders>
<folder caption="000_Test" description="desc" moniker="">
<references>
<ref key="{somekey}" />
</references>
</folder>
</folders>
<references>
<ref key="{somekey}" />
</references>
</folder>
</folders>
<folders>
<folder caption="000_Temp" description="desc" moniker="">
<folders>
<folder caption="000_Temp2" description="desc" moniker="">
<references>
<ref key="{somekey}" />
</references>
</folder>
</folders>
</folder>
</folders>
<references>
<ref key="{somekey}" />
</references>
</folder>
</folders>
</Root>
Любая помощь (уровень noob, пожалуйста) будет оценена.