XML : verifier presence ou non dun attribut dans une balise

Signaler
Messages postés
687
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
27 août 2014
-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
-
Bonjour
je voudrais savoir comment faire un test pour verifier si un attribut est present ou non dans une balise XML a la lecture du fichier XML (avec XMLTextreader)
de maniere a ce que si je cemande la valeur cela ne me renvoit pas une exception si cet attribut nest pas present dans la balise

vala mercii ++

4 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
52
Salut,
Tu peux utiliser la property HasAttributes :
bool
hasAttribute = myReader.HasAttributes;
// Current node

VC# forever
Messages postés
687
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
27 août 2014
2
ouaip bon jai mis un bete try catch mais bon je prefere qd mm qd on peut utiliser vraiment une methode specifique pour tester un element avant de l'utiliser

merci Bidou
++
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
la réponse de Bidou n'est pas correcte... dsl ;)


HasAttributes retourne true si le noeud contient un ou plusieurs attributs... quelqu'il soit.


Mais par contre, on sait que la propriété Attributes de XmlNode est une collection, on peut donc la parcourir et ainsi éviter le try/catch.

Ainsi, tu peux faire :

string GetAttributeValue(XmlNode node, string attributeName) {
   foreach(XmlAttribute att in node.Attributes) {
      if (att.Name == attributeName) {
         return att.Value;
      }
   }

   return string.Empty;
}




En lisant la documentation MSDN, je suis tombé que la méthode ItemOf() pour la propriété Attributes, vérifie qu'elle ne fait pas tout simplement ce que tu veux !

xmlNode.Attrbitues.ItemOf("monAttribut");






Sébastien FERRAND
(

blog
)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
52
Juste, à vrai dire j'avais mal lu la question, j'ai crû qu'il s'agissait seulement de vérifier l'existance ou pas d'attributs  Et pas d'un attribut spécifique !

VC# forever