Yes.
var xDoc = XDocument.Load("path");
var documents = xDoc.Descendants("document").Where(x => (string)x.Attribute("name") != "Page1")
.OrderBy(x => (int)(x.Elements("attribute").First().Attribute("value")))
.ToList();
var data = xDoc.Descendants("data").First();
data.Remove();
var document = xDoc.Descendants("document").First(x => (string)x.Attribute("name") == "Page1");
document.Add(new XElement("data", documents));
xDoc.Save("path");