XML : verifier presence ou non dun attribut dans une balise

romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 - 12 août 2006 à 23:16
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 13 août 2006 à 09:44
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 ++
A voir également:

4 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
12 août 2006 à 23:25
Salut,
Tu peux utiliser la property HasAttributes :
bool
hasAttribute = myReader.HasAttributes;
// Current node

VC# forever
0
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
13 août 2006 à 01:00
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
++
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
13 août 2006 à 09:10
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#]
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
13 août 2006 à 09:44
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
0
Rejoignez-nous