In this post LINQ to XML Update Element Values,
we shall see how to update the values of elements in an existing XML structure. We will
load an XML file from the disk, update the values of the elements and save the
updated XML to the disk.
Assume that we have the following XML fragment
<Employees>
<Employee>
<Name>
<FirstName>Henry</FirstName>
<LastName>Ford</LastName>
</Name>
<Age>65</Age>
<Department Name="Automobile" />
</Employee>
<Employee>
<Name>
<FirstName>Bill</FirstName>
<LastName>Gates</LastName>
</Name>
<Age>55</Age>
<Department Name="Software" />
<Department Name="Software" />
</Employee>
<Employee>
<Name>
<FirstName>Steve</FirstName>
<LastName>Jobs</LastName>
</Name>
<Age>75</Age>
<Department Name="Mobile" />
<Department Name="Mobile" />
</Employee>
</Employees>
Now
we will update the value of the Age Element, for the Employee Henry Ford.
XElement xEmp = XElement.Load(@"D:\Employees.xml");
//
var empDetails = from
emps in xEmp.Elements("Employee")
where
emps.Element("Name").Element("FirstName").Value.Equals("Henry")
select emps;
//
empDetails.First().Element("Age").Value = "60";
//
xEmp.Save(@"D:\Employees.xml");
When
this code is executed, the Employees.xml file will contain
the following tags.
<Employees>
<Employee>
<Name>
<FirstName>Henry</FirstName>
<LastName>Ford</LastName>
</Name>
<Age>60</Age>
<Department Name="Automobile" />
</Employee>
<Employee>
<Name>
<FirstName>Bill</FirstName>
<LastName>Gates</LastName>
</Name>
<Age>55</Age>
<Department Name="Software" />
<Department Name="Software" />
</Employee>
<Employee>
<Name>
<FirstName>Steve</FirstName>
<LastName>Jobs</LastName>
</Name>
<Age>75</Age>
<Department Name="Mobile" />
<Department Name="Mobile" />
</Employee>
</Employees>
That’s
it we have updated the value of the Age element in the XML saved the changes to
the Disk.
Related Post