【问题标题】:How to dynamically change attribute of an xml node with c#如何使用c#动态更改xml节点的属性
【发布时间】:2012-09-07 22:19:07
【问题描述】:

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

有人有什么想法或建议吗?

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

【问题讨论】:

  • 首先使用 XDocument,而不是 XmlDocument。除非你还在使用 Fx 2。
  • 现在停止使用 XmlDocument 为时已晚。我已经做的太多了。感谢您的建议
  • 随心所欲。 XAttribute.Value 是可写的。

标签: c# xml xmlnode xml-attribute


【解决方案1】:

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

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

如果你知道属性已经存在,我相信有一种方法可以在没有演员表的情况下做到这一点:

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

【讨论】:

  • SetAttribute 即使属性不存在也能工作
猜你喜欢
  • 2021-12-24
  • 2019-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-08
  • 1970-01-01
  • 2011-10-13
  • 2014-05-20
相关资源
最近更新 更多