2017-07-19 101 views
1

需要添加XAttribute到的XElement如果元素存在屬性

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"也許(我知道這是可能的將上面的代碼片段包裝成一個函數)?

回答

4

在使用SetAttributeValue之前,不需要檢查屬性是否已經存在。剛:

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

(有沒有點甚至創建自己XAttribute

documentation

值分配給具有指定名稱的屬性。如果不存在具有指定名稱的屬性,則添加新屬性。如果值爲空,則具有指定名稱的屬性(如果有)將被刪除。

+0

準確答案,謝謝。 –

相關問題