两个条件XPATH使用OR两个条件XPATH使用OR(Two conditions using OR

2019-05-11 22:35发布

我有一个文本框,“txtSearch”。 我使用它按姓氏进行搜索的人。 这是我的代码。

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

这段代码在像txtSearch文本框中的文本输入的XML选择所有姓氏。

这意味着所有大写字母为小写字母。

所以,如果我在寻找“Dorosan”,如果我输入“多罗”,它检索正确的人,因为它翻译的“d”为“d”。 但是,当我输入“多罗”,它不检索正确的人。

我不知道如果我能有两个条件在XPath,怎么样? 我希望能够为全部大写转换为小写,或翻译全部小写为大写。

Answer 1:

你可以使用or / and[....]

例:

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

有关运营商更多信息: http://www.w3schools.com/xpath/xpath_operators.asp



Answer 2:

andor允许的条件内: [here] 。 或者你也可以使用管道标志使用一个XPath表达式的多个路径。

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



Answer 3:

我不认为你需要一个“或”在这里。 你只需要两个操作数转换为小写,而不是仅仅翻译其中的一个。



Answer 4:

正如迈克尔·凯指出,没有or是必要的。

只需使用

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

+ "')]");


文章来源: Two conditions using OR in XPATH