我有一个Add和Update函数来更新我正在处理的xml数据库中的列表。在添加功能中,我这样做:
new XElement(ImageUtilities.GetImageXElement(series.image)),
它基本上需要一个图像对象,做一些背景的东西(工作正常)并返回一个XElement。这完美无瑕。当我尝试进行更新时,问题就出现了。我基本上试图做到以下几点。
xseries.SetElementValue(ImageUtilities.GetImageXElement(series.image));
我已经尝试过以下显然无效的方法,但我认为它的某些变体会起作用,它会编译,但它不会运行。它给出了错误:" System.ArgumentException: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.
但如果图片对象发生变化,我将不得不重新加入并更改我之后所做的所有事情。
答案 0 :(得分:1)
如何用新<image>
替换现有的<image>
元素?您可以使用ReplaceWith()
执行此操作:
xseries.Element("image")
.ReplaceWith(ImageUtilities.GetImageXElement(series.image));