「txtSearch」というテキストボックスがあります。姓で人を検索するために使用しています。これは私のコードです。
var xmlTempResultSearch = xmlResidentListDisplay.selectNodes(
"//PeopleList/Row[contains(translate(@LastName, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), '" +
txtSearch.value + "')]");
このコードは、txtSearchテキストボックスへのテキスト入力のように、XML内のすべての姓を選択します。
これにより、すべての大文字が小文字に変換されます。
したがって、「Dorosan」を検索している場合、「doro」と入力すると、「D」を「d」に変換したため、正しい人が取得されます。しかし、「Doro」と入力すると、正しい人が取得されません。
XPATHに2つの条件を設定できるかどうか、またその方法は?すべての大文字を小文字に変換できるようにしたい、ORすべての小文字を大文字に変換します。
or
/and
を[....]
内で使用できます
例:
//*[contains('abc') or contains('def') or text()='abcdef']
オペレーターに関する詳細情報: http://www.w3schools.com/xpath/xpath_operators.asp
and
およびor
は条件内で許可されます:[here]
。または、パイプ記号を使用して1つのXPath式で複数のパスを使用することもできます。
//PeopleList/Row[c1] | //PeopleList/Row[c2]
ここで「または」が必要だとは思わない。どちらか一方のみを翻訳するのではなく、両方のオペランドを小文字に翻訳する必要があります。
Michael Kayが述べたように、or
は必要ありません。
単に使用:
PeopleList/Row
[contains(translate(@LastName,
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'abcdefghijklmnopqrstuvwxyz'), '"
+
translate(txtSearch.value,
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'abcdefghijklmnopqrstuvwxyz')'"
+ "')]");