You can move elements by deleting them, and then reinserting them in the desired position:
var doc = XDocument.Parse(@"<tabs>...</tabs>"); var tab = doc.Root.Elements().ElementAt(1); tab.Remove(); doc.Root.AddFirst(tab);
Alternatively, you can create a new document from existing elements in the desired order:
var doc = XDocument.Parse(@"<tabs>...</tabs>"); var tabs = doc.Root.Elements(); var result = new XDocument( new XElement("tabs", tabs.ElementAt(1), tabs.ElementAt(0), tabs.ElementAt(2)));
I have not tested it, but this may work:
void Swap(XElement a, XElement b) { var c = new XElement("dummy"); a.ReplaceWith(c); b.ReplaceWith(a); c.ReplaceWith(b); }
dtb
source share