linq-to- xml делает это простым:
// Parse our XML document to an XDocument
var xml = @"<Bank>
<Customer id=""0"">
<Accounts>
<Account id=""0"" />
<Account id=""1"" />
</Accounts>
</Customer>
<Customer id=""2"">
<Accounts>
<Account id=""0"" />
</Accounts>
</Customer>
</Bank>";
var doc = XDocument.Parse(xml);
// Create our new Customer to add
var newCustomer = new XElement("Customer",
new XAttribute("id", "1"),
new XElement("Accounts",
new XElement("Account", new XAttribute("id", "0"))
)
);
// Find the customer with id="2"
var customer2 = doc.Root.Elements("Customer").First(x => x.Attribute("id").Value == "2");
// Add the new customer before the customer with id="2"
customer2.AddBeforeSelf(newCustomer);