2012-09-14 56 views
2

我有一个将用户数据保存到xml文档的c#应用程序。我希望能够根据用户在文本框中输入不同条件来动态更改xml节点的属性,并选择保存/覆盖现有文件保存。问题是我不能简单地删除节点并用新属性重新创建节点,因为节点具有无法删除的子节点。如何使用c动态更改xml节点的属性#

有没有人有任何想法或建议?

XmlNode.Attributes方法不提供一种方式,因为我可以告诉只删除节点的属性并重新分配它。但我可能是错的。

+1

开始使用的XDocument,不XmlDocument的。除非你还在使用Fx 2. –

+0

对于我来说停止使用XmlDocument已经太晚了。我已经做得太多了。感谢您的建议,尽管 – user1546315

+0

有你的方式。 'XAttribute.Value'只是可写的。 –

回答

10

将您的节点转换为XmlElement并使用element.SetAttribute(...);方法。

((XmlElement)node).SetAttribute("name", "value"); 

而且我相信有办法做到这一点不投,如果你知道这个属性已经存在:

node.Attributes["name"].Value = "value"; 
+0

即使属性不存在,SetAttribute也可以工作 –