我有一个文本框,“txtSearch”。 我使用它按姓氏进行搜索的人。 这是我的代码。
var xmlTempResultSearch = xmlResidentListDisplay.selectNodes(
"//PeopleList/Row[contains(translate(@LastName, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), '" +
txtSearch.value + "')]");
这段代码在像txtSearch文本框中的文本输入的XML选择所有姓氏。
这意味着所有大写字母为小写字母。
所以,如果我在寻找“Dorosan”,如果我输入“多罗”,它检索正确的人,因为它翻译的“d”为“d”。 但是,当我输入“多罗”,它不检索正确的人。
我不知道如果我能有两个条件在XPath,怎么样? 我希望能够为全部大写转换为小写,或翻译全部小写为大写。
你可以使用or
/ and
内[....]
例:
//*[contains('abc') or contains('def') or text()='abcdef']
有关运营商更多信息: http://www.w3schools.com/xpath/xpath_operators.asp
and
和or
允许的条件内: [here]
。 或者你也可以使用管道标志使用一个XPath表达式的多个路径。
//PeopleList/Row[c1] | //PeopleList/Row[c2]
我不认为你需要一个“或”在这里。 你只需要两个操作数转换为小写,而不是仅仅翻译其中的一个。
正如迈克尔·凯指出,没有or
是必要的。
只需使用 :
PeopleList/Row
[contains(translate(@LastName,
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'abcdefghijklmnopqrstuvwxyz'), '"
+
translate(txtSearch.value,
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'abcdefghijklmnopqrstuvwxyz')'"
+ "')]");