如果元素中存在属性,则将 XAttribute 添加到 XElement

Add the XAttribute to XElement if attribute exists in the element

需要添加

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" 也许(我知道可以将上面的代码片段包装成功能)?

使用SetAttributeValue前无需检查属性是否已经存在。只是:

// Unconditional
elem.SetAttributeValue("TAG", value);

(即使自己创建 XAttribute 也没有意义。)

来自documentation

The value is assigned to the attribute with the specified name. If no attribute with the specified name exists, a new attribute is added. If the value is null, the attribute with the specified name, if any, is deleted.