我有这个 XPath 表达式,它可以过滤包含通配符字符串的行
但是当搜索为空或为空时,我希望它最初返回所有行。如果可能的话,我需要排队。
[contains(translate(concat(' ',@Title,' '),$upper,$lower),$search)]
请注意,如果我将“”传递给 $search,则会返回所有行。但我没有用户必须这样做。
我有这个 XPath 表达式,它可以过滤包含通配符字符串的行
但是当搜索为空或为空时,我希望它最初返回所有行。如果可能的话,我需要排队。
[contains(translate(concat(' ',@Title,' '),$upper,$lower),$search)]
请注意,如果我将“”传递给 $search,则会返回所有行。但我没有用户必须这样做。
使用:
absoluteExpressionSelectingAllElements
[not(absoluteExpressionSelectingAllElements
[contains(translate(concat(' ',@Title,' '),$upper,$lower),$search)])
]
|
absoluteExpressionSelectingAllElements
[contains(translate(concat(' ',@Title,' '),$upper,$lower),$search)]
此表达式是|
两个子表达式的并集 ( ),其中一个不选择任何内容,另一个选择搜索结果(如果非空)或所有元素。
更一般地说,要在条件为时选择所有节点并expr1
在条件为时选择所有节点,请执行以下操作cond
true()
expr2
cond
false()
:
expr1[cond] | expr2[not(cond)]