我想要合併成單個文件的多個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>
即,它基於所述第三/ @ id屬性合併的值。
我該如何優雅地用linq做這件事?
輝煌。謝謝。 –
@IainHolder我看到你沒有接受這個答案。評論爲什麼這不/不再回答你的問題,將不勝感激。 – Alex
感謝您指出。如果是我,那是很胖的手指。答案很好。這些funcs是關鍵。我調整了它並創建了一個for循環,將相當多的文件放在一起。我已經重新接受了答案。 :-) –