3

可能重复:
用于检查变量是否属于元素集的 XSLT 表达式

给定一个参数 ,$name什么是检查其值是否等于有限数量值之一的简洁明了的方法?

例如,假设我想合并这些when测试中的前 3 个,因为它们的内容完全相同。

<choose>
  <when test="$name='Alice'">
  <when test="$name='Bob'">
  <when test="$name='Cindy'">
  <when test="$name='Dave'">
  <otherwise>

类似的东西test="$name in ['Alice','Bob','Cindy']",除了实际上有效:P

4

2 回答 2

8

在 XSLT 2.0 中,使用$name = ('Alice', 'Bob', 'Cindy').

于 2012-10-25T15:41:23.477 回答
2

使用(在 XSLT 1.0 和 XSLT 2.0 中)

contains('|Alice|Bob|Cindy|', concat('|', $name, '|'))

而且,正如 Martin Honnen 已经提到的,仅在 XPath 2.0 (XSLT 2.0) 中,可以简单地编写

$name = ($seqOfNames)
于 2012-10-25T15:35:51.170 回答