2017-07-19 1 views
1

besoin d'ajouterAjouter le XAttribute à XElement si un attribut existe dans l'élément

XAttribute newatt = new XAttribute("TAG", value); 

à XElement elem, mais le elem pourrait déjà contenir l'attribut avec le nom "TAG", de sorte que le elem.Add(newatt); donnerait erreur. La solution que j'utilise en ce moment est de vérifier d'abord:

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 

Y at-il un chemin plus court pour effectuer cette tâche, peut-être déjà fonction XElement qui vérifie l'"TAG" existant peut-être (je suis conscient qu'il est possible de envelopper l'extrait ci-dessus dans une fonction)?

Répondre

4

Vous n'avez pas besoin de vérifier si l'attribut existe déjà avant d'utiliser SetAttributeValue. Just:

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

(Il n'y a aucun point même de créer vous-même XAttribute.)

De l'documentation:

La valeur est affectée à l'attribut avec le nom spécifié. Si aucun attribut avec le nom spécifié n'existe, un nouvel attribut est ajouté. Si la valeur est null, l'attribut avec le nom spécifié, le cas échéant, est supprimé.

+0

Réponse exacte, merci. –