需要添加
XAttribute newatt = new XAttribute("TAG", value);
到XElement elem
,但elem
可能已包含名称为"TAG"
的属性,因此elem.Add(newatt);
会出错。我目前使用的解决方法是首先检查:
if (elem.Attribute("TAG") != null) // check if attribute exists
elem.SetAttributeValue("TAG", newatt.Value.ToString()); // Attribute exists
else
elem.Add(newatt); // Attribute does not exist
是否有更短的方法来执行此任务,可能已经可用的XElement
函数可以检查现有的"TAG"
(我知道可以将上面的代码段包装到函数中) ?
答案 0 :(得分:4)
在使用SetAttributeValue
之前,您无需检查该属性是否已存在。只是:
// Unconditional
elem.SetAttributeValue("TAG", value);
(即使自己创建XAttribute
也没有意义。)
将值分配给具有指定名称的属性。如果不存在具有指定名称的属性,则添加新属性。如果值为null,则删除具有指定名称的属性(如果有)。