linq - 更新 XDocument 中的 XElement 值?

标签 linq linq-to-xml

我有一个带有 XElement 的 XDocument,例如:

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

我想找到 Text 元素并更新它的值。我有一些 LINQ 工作,但它返回值,而不是允许我更新 XElement 和 XDocument 作为返回。

最佳答案

您不能在单个 LINQ 语句中执行此操作 - LINQ 是关于查询的,而您正在执行更新。您应该使用 LINQ 查询要更新的元素,然后遍历 foreach 中的列表并应用更改;例如:

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

关于linq - 更新 XDocument 中的 XElement 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1336983/

相关文章:

C# 使用 LINQ 查询更新字典 <string,string>

.net - 使用 linq to xml 读取 CDATA

c# - 在 C# 中向根 xelement 元素添加/创建命名空间

c# - 重新排序 XML 节点

c# - 为什么 XDocument.Parse 抛出 NotSupportedException?

vb.net - Linq 左外连接

c# - 如何将 IEnumerable<object> 转换为 List<IFoo>,其中每个对象都是一个 IFoo?

c# - Linq To Sql 检索数据的速度惊人地快。它比 ADO 快 10 倍是否正常?

c# - Linq to Xml 转换列表

c# - 如何在 WHERE 子句中使用 Lambda bool 方法?