using System.Collections.Generic;
public static void Main()
var xdoc1 = XDocument.Parse(raw1);
var xdoc2 = XDocument.Parse(raw2);
foreach (var item in xdoc2.Descendants("Configuration"))
var domain = (string)item.Element("Domain");
var parent = xdoc1.Descendants("Configuration")
.Where(o => (string)o.Element("Domain") == domain)
parent.Add(item.Elements("Components").Elements("Component"));
xdoc1.Root.Element("Configurations").Add(item);
System.Console.WriteLine(xdoc1.ToString());