如何使用C#动态更改XML节点的属性

6
我有一个C#应用程序,将用户的数据保存到XML文档中。我想根据用户输入不同的条件并选择保存/覆盖现有文件保存来动态更改XML节点的属性。问题在于,我不能简单地删除节点并重新创建一个新属性,因为该节点有无法删除的子节点。
有人有任何想法或建议吗?
据我所知,XmlNode.Attributes方法没有提供一种删除节点属性并重新分配它的方法,但我可能错了。

1
开始时使用XDocument而不是XmlDocument。除非你还在使用Fx 2. - H H
现在停用XmlDocument已经太晚了,我已经做了太多的工作。还是谢谢你的建议。 - user1546315
随你喜欢。XAttribute.Value 只是可写的。 - H H
1个回答

23

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

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

此外,如果您已知属性已经存在,则我相信有一种方法可以在不使用强制转换的情况下完成它:

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

2
即使属性不存在,SetAttribute也能工作。 - C.M.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接