Update XElement value in XDocument?

linq, linq-to-xml

Solution

You can't do it in a single LINQ statement - LINQ is about queries, and you're doing an update. You should use LINQ to query for elements you want to update, and then go through the list in `foreach` and apply the changes; e.g.:

var pageContents = doc./* ... */.Elements("PageContents").Where(...);
foreach (var pageContent in pageContents)
{
    pageContent.Element("Text").Value = "Foo";
    pageContent.Element("Image").Value = "bar.jpg";
}

Problem

I have a XDocument with XElements such as this: ``` <PageContent> <Text>My Text</Text> <Image>image.jpg</Image> </PageContent> ``` I want to find the Text element and update its value. I have some LINQ working but its returning the value rather than allowing me to update the XElement and XDocument in return.

Original source