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 lettres minuscules.
Donc, si je recherche "Dorosan", si je tape "doro", il récupère la bonne personne car il a traduit le "D" en "d". Mais quand je tape "Doro", il ne récupère pas la bonne personne.
Je me demande si je peux avoir deux conditions dans un XPATH, et comment? Je veux pouvoir traduire tous les majuscules en minuscules, OR traduire toutes les minuscules en majuscules.
vous pouvez utiliser or
/and
dans [....]
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 signe de canal.
//PeopleList/Row[c1] | //PeopleList/Row[c2]
Je ne pense pas que vous ayez besoin d'un "ou" ici. Il vous suffit de traduire les deux opérandes en minuscules, plutôt que de n'en traduire qu'un seul.
Comme l'a noté Michael Kay, aucun or
n'est nécessaire.
tilisez simplement:
PeopleList/Row
[contains(translate(@LastName,
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'abcdefghijklmnopqrstuvwxyz'), '"
+
translate(txtSearch.value,
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'abcdefghijklmnopqrstuvwxyz')'"
+ "')]");