I have two dataGridViews that load up an XML file each, I have made it so that you can drag and drop rows in between each of the grids. However at the moment, all that it do
Assume you want to copy block of elements from text1.xml to text2.xml, you can use LINQ to XML, example below assumes copying all entries from text1 to text 2:
var xDoc1 = XDocument.Load("C:\\text1.xml");
var xDoc2 = XDocument.Load("C:\\text2.xml");
var doc1Entries = xDoc1.Descendants("stentry");
var cloneEntries = doc1Entries.Select(x => new XElement(x));
xDoc2.Descendants("stentry").Last().AddAfterSelf(cloneEntries);
xDoc2.Save("C:\\text2.xml");
But you also can use Where
method to filter to get part of xml, sample below is to filter using list of indices:
var filterIndices = new[] {600, 601, 700, 705};
var doc1Entries =
xDoc1.Descendants("stentry")
.Where(x =>
filterIndices.Contains(int.Parse(x.Element("index").Value)));
In here, I assume to insert to the last using Last
, but if you care about ordering, you can use LINQ on xDoc2 to find correct position, then do insert.