...seulement pour ceux placés avant r41, soit r21, r22, r26 et r27. ...
dans ce cas il suffit de ne pas récupérer les autres!
je crois que l'on peut créer un "array".
c'est exactement l'idée pour faire une boucle.
pourquoi ne pas recupérer directement les valeurs dans un array plutôt que dans var tr21, var tr22 etc...
tout cela pourrait ce traduire par
var oPart = xmlDoc.getElementsByTagName('particulier');
//-- recuperation du bon participant
oPart = oPart[oPart.length-1];
//-- tableau des attributs interessants
var tAttrib = ["r21","r22","r26","r27"];//,"r41","r42","r55","r54","r43"];
var iCount = 0; // le compteur
var iVal; // la valeur recuperee
//-- recherche dans les attributs interessants
for(var i 0, nb tAttrib.length; i<nb;i++){
//-- recup. de la valeur
iVal= oPart.getAttribute(tAttrib[i]);
//-- test si 0
if( iVal == 0){
//-- incremente compteur
iCount++;
}
}
//-- affiche resultat
alert( iCount);
tu y étais presque...
;O)