У меня есть несколько файлов XML, которые я пытаюсь объединить в один файл. Linq to XML, вероятно, лучший вариант, но я открыт для идей (XSLT, похоже, хорош в слиянии двух файлов, но неуклюже, где n> 2 или n = большой).Использование linq для объединения нескольких файлов XML с одинаковой структурой и удаления дубликатов на основе ключа
От чтения других вопросов здесь какое-то соединение выглядит хорошо.
File1.xml:
<first>
<second>
<third id="Id1">
<values>
<value a="1" b="one"/>
<value a="2" b="two"/>
<value a="3" b="three"/>
</values>
</third>
<third id="Id2">
<values>
<value a="f" b="foo"/>
<value a="b" b="bar"/>
<value a="w" b="wibble"/>
</values>
</third>
</second>
</first>
File2.xml:
<first>
<second>
<third id="Id1">
<values>
<value a="2" b="two"/>
<value a="3" b="three"/>
<value a="6" b="six"/>
</values>
</third>
<third id="Id3">
<values>
<value a="x" b="ex"/>
<value a="y" b="why"/>
<value a="z" b="zed"/>
</values>
</third>
</second>
</first>
Merged.xml:
<first>
<second>
<third id="Id1">
<values>
<value a="1" b="one"/>
<value a="2" b="two"/>
<value a="3" b="three"/>
<value a="6" b="six"/>
</values>
</third>
<third id="Id2">
<values>
<value a="f" b="foo"/>
<value a="b" b="bar"/>
<value a="w" b="wibble"/>
</values>
</third>
<third id="Id3">
<values>
<value a="x" b="ex"/>
<value a="y" b="why"/>
<value a="z" b="zed"/>
</values>
</third>
</second>
</first>
т.е. объединяет значения на основе атрибута третьего/@ ид ,
Как это сделать с помощью linq?
Блестящий. Спасибо. –
@IainHolder Я вижу, что вы не приняли это за ответ. Комментарий к тому, почему это не отвечает/не отвечает на ваш вопрос, будет оценен по достоинству. – Alex
Спасибо, что указали это. Если бы это был я, то это было жирным пальцем. Ответ отличный. Фунты были ключом. Я адаптировал его и создал цикл for для создания нескольких файлов вместе. Я повторил ответ. :-) –