问题
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.
回答1:
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";
}
来源:https://stackoverflow.com/questions/1336983/update-xelement-value-in-xdocument