static void Main(string[] args) { var xml = "<Users><UserInfo><Name>Old Name</Name><UserCart></UserCart></UserInfo></Users>"; var document = XDocument.Parse(xml); var userCart = document.Descendants("UserInfo") .SingleOrDefault(x => x.Descendants("Name").Single().Value == "Old Name") ?.Element("UserCart"); var newUserCart = new UserCart { Products = new List <Product> { new Product { Name = "First" }, new Product { Name = "Second" } } }; userCart?.ReplaceWith(newUserCart.ToXElement()); Console.WriteLine(document.ToString()); }