2
我有一個XElements的XDocument像這樣:更新XDocument中的XElement值?
<PageContent>
<Text>My Text</Text>
<Image>image.jpg</Image>
</PageContent>
我想找到的文本元素和更新它的值。我有一些LINQ工作,但它返回的值,而不是讓我更新XElement和XDocument作爲回報。
我有一個XElements的XDocument像這樣:更新XDocument中的XElement值?
<PageContent>
<Text>My Text</Text>
<Image>image.jpg</Image>
</PageContent>
我想找到的文本元素和更新它的值。我有一些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";
}
我這樣做: VAR Q = XMLData.Descendants( 「PageContent」)後代()的SingleOrDefault(X => x.Name == item.Key); q.Value = item.Value; 但是,當我看看XMLData沒有任何變化 – Jon 2009-08-26 20:22:06
您的查詢聽起來不錯。如果你沒有看到變化,那很可能是因爲你檢查它的方式。你可以發佈你用來驗證變更發生的代碼嗎? – 2009-08-26 21:21:21
add doc.Save(...); – WhiteWolfza 2017-05-05 11:23:24