用一个元素更新Linq to XML元素
本文关键字:元素 更新 Linq to XML 一个 | 更新日期: 2023-09-27 18:17:27
我有一个Add和一个Update函数来更新我正在处理的xml数据库中的列表。在add函数中,我这样做:
new XElement(ImageUtilities.GetImageXElement(series.image)),
它基本上接受一个图像对象,做一些背景工作(工作得很好)并返回一个XElement。这是完美的。当我尝试进行更新时,问题就出现了。我要做的就是:
xseries.SetElementValue(ImageUtilities.GetImageXElement(series.image));
我已经尝试了以下显然不起作用,但我认为它的一些变化会起作用,它编译,但它不会运行。它给出了错误:"System。一个XObject不能被用作一个值。我在谷歌上搜索了一下,似乎没有说,你用一个元素更新一个元素。
xseries.SetElementValue("image", ImageUtilities.GetImageXElement(series.image));
我可以让它正常工作:
xseries.Element("image").SetAttributeValue("guid", series.image.guid);
xseries.Element("image").SetAttributeValue("main", series.image.main);
xseries.Element("image").SetAttributeValue("height", series.image.height);
xseries.Element("image").SetAttributeValue("width", series.image.width);
xseries.Element("image").SetAttributeValue("order", series.image.order);
... and so on.
但是如果图像对象改变了,我就必须返回并更改我之后所做的一切
如何将现有的<image>
元素替换为新的<image>
?您可以使用ReplaceWith()
:
xseries.Element("image")
.ReplaceWith(ImageUtilities.GetImageXElement(series.image));