Все решения, с которыми я столкнулся относительно слияния XML-документы не достигают того, чего я хочу. Позвольте мне пояснить:
XML-документ 1:
<?xml version="1.0" encoding="utf-8" ?>
<a>
<b title="Original Section">
<b title="Original Child Section"></b>
<b title="Original Child Section 2"></b>
</b>
</a>
XML-документ 2:
<?xml version="1.0" encoding="utf-8" ?>
<a>
<b title="New Section">
<b title="New Child Section"></b>
</b>
<b title="Original Section">
<b title="Original Child Section">
<b title="New Child For Old Section"></b>
</b>
</b>
</a>
В окончательном документе, например:
<?xml version="1.0" encoding="utf-8" ?>
<a>
<b title="Original Section">
<b title="Original Child Section">
<b title="New Child For Old Section"></b>
</b>
<b title="Original Child Section 2"></b>
</b>
<b title="New Section">
<b title="New Child Section"></b>
</b>
</a>
Документы похожи по содержанию, но могут иметь произвольное количество дочерних узлов. Еще хотелось бы удалить дубликаты. Я считаю дубликаты элементами с одинаковыми атрибутами (на основе имени и значения атрибута). Кто-нибудь видел рабочий пример этой реализации? Я могу представить себе, как бы я написал это, используя несколько циклов и небольшую рекурсию, но мне это не кажется лучшим способом достичь того, что я хочу :)
Приветствую и заранее спасибо!
* РЕДАКТИРОВАТЬ *
Поскольку все согласны с тем, что циклы и рекурсия являются обязательными, какой способ сделать это наиболее элегантным и эффективным? Я полагаю, что еще один фундаментальный вопрос к этой проблеме: как лучше всего сравнивать узлы при итерации?