13.11 some/every判断表达式
此处的some/every判断表达式和XPath 2.0中的作用几乎完全一样,甚至连语法格式也非常相似,其语法格式如下:
对于some判断表达式而言,只要seq序列中有一项满足test_condition,该表达式就将返回true;而对于every判断表达式而言,只有seq序列中的所有项都满足test_condition,该表达式才返回true。不管是some判断表达式,还是every判断表达式,它们都可以在变量名后使用as type来显式指定该变量的数据类型。
例如下面的XQuery用来判断13.4节中的list.xml文档里是否有一个<book…/>元素的字符串内容长度大于10:
程序清单:codes\13\13.11\some.xq
因为是some判断表达式,所以只要指定序列中任意一项满足test_condition即返回true,因此上面的some判断表达式将返回true。将上面的some关键字改为every,即对于如下XQuery查询:
程序清单:codes\13\13.11\every.xq
由于every判断表达式要求序列中的所有项都满足test_condition才可返回true,因此上面的every判断表达式将返回false。