C#中设置XML元素属性推荐用XElement或XmlDocument:XElement用SetAttributeValue增删改属性,简洁高效;XmlDocument需先获取XmlElement再调用SetAttribute,适合老项目或命名空间场景。
在C#中设置XML元素的属性,最常用且推荐的方式是使用 XElement(来自 System.Xml.Linq)或 XmlDocument。下面分两种主流方式说明,兼顾简洁性与实用性。
XElement 是 LINQ to XML 的核心类,语法简洁、操作直观,适合新建或轻量修改XML。
XAttribute:SetAttributeValue 方法(自动处理新增或覆盖):null 或使用 Remove
Attributes() 清空所有:适用于需要兼容老项目、或需精细控制 DOM 结构的场景。
XmlElement,再调用 SetAttribute:xmlns:xsi),需用 SetAttributeNode 配合 XmlAttribute 构造:避免踩坑的关键细节:
"ID" 和 "id" 是两个不同属性;XElement.SetAttributeValue 不会抛异常,即使元素为空或路径错误,需提前校验;XmlDocument 修改后,如需保存,必须显式调用 Save();XElement 会自动转义(如 & → &),无需手动处理。新项目优先选 XElement:代码少、可链式构建、支持 LINQ 查询;
维护旧系统或需严格遵循 W3C DOM 行为时,用 XmlDocument 更稳妥。