Linq 是否更新XDocument中的XElement值?

Linq 是否更新XDocument中的XElement值?,linq,linq-to-xml,Linq,Linq To Xml,我有一个XDocument,其中包含如下元素: <PageContent> <Text>My Text</Text> <Image>image.jpg</Image> </PageContent> 我的文字 文件段 我想找到文本元素并更新其值。我有一些LINQ正在工作,但它返回值,而不是允许我更新XElement和XDocument作为回报。你不能在一个LINQ语句中完成这项工作-LINQ是关于查询的,你正在进

我有一个XDocument,其中包含如下元素:

<PageContent>
  <Text>My Text</Text>
  <Image>image.jpg</Image>
</PageContent>

我的文字
文件段

我想找到文本元素并更新其值。我有一些LINQ正在工作,但它返回值,而不是允许我更新XElement和XDocument作为回报。

你不能在一个LINQ语句中完成这项工作-LINQ是关于查询的,你正在进行更新。您应该使用LINQ查询要更新的元素,然后浏览
foreach
中的列表并应用更改;e、 g:

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

我已经这样做了:var q=XMLData.subscriptions(“PageContent”).subscriptions().SingleOrDefault(x=>x.Name==item.Key);q、 价值=项目价值;但是,当我查看XMLData时,没有任何变化您的查询听起来很好。如果你没有看到变化,那么很可能是因为你检查变化的方式。您可以发布用于验证更改是否发生的代码吗?添加doc.Save(…);