Deux conditions utilisant OR dans XPATH

J'ai une zone de texte, 'txtSearch'. Je l'utilise pour rechercher des personnes par Nom de famille. C'est mon code.

var xmlTempResultSearch = xmlResidentListDisplay.selectNodes( "//PeopleList/Row[contains(translate(@LastName, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), '" + txtSearch.value + "')]"); 

Ce code sélectionne tous les noms de famille dans le XML comme l'entrée de texte dans la zone de texte txtSearch.

Cela traduit toutes les lettres majuscules en minuscules.

Donc, si je cherche "Dorosan", si je tape 'doro', il récupère la personne correcte car elle a traduit le 'D' à 'd'. Mais quand je tape 'Doro', il ne récupère pas la personne correcte.

Je me demande si je peux avoir deux conditions dans un XPATH, et comment? Je veux pouvoir traduire toutes les majuscules en minuscules, OU traduire toutes les minuscules en majuscules.

Vous pouvez utiliser or / and intérieur [....]

Exemple:

 //*[contains('abc') or contains('def') or text()='abcdef'] 

Plus d'informations sur les opérateurs: http://www.w3schools.com/xpath/xpath_operators.asp

and et / or sont autorisés dans la condition: [here] . Ou vous pouvez également utiliser plusieurs chemins dans une expression XPath à l'aide du panneau de tuyaux.

//PeopleList/Row[c1] | //PeopleList/Row[c2]

Je ne pense pas que vous ayez besoin d'un "ou" ici. Il suffit de traduire les deux opérandes en minuscules, plutôt que de traduire l'un d'entre eux.

Comme l'a noté Michael Kay, il n'est or nécessaire or nécessaire.

Utilisez simplement :

 PeopleList/Row [contains(translate(@LastName, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), '" + translate(txtSearch.value, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')'" + "')]");