测试参数是否是XSLT中的几个值之一

时间:2012-10-25 15:10:37

标签: xslt xslt-2.0 xpath-2.0

  

可能重复:
  XSLT expression to check if variable belongs to set of elements

给定一个参数$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

2 个答案:

答案 0 :(得分:7)

使用XSLT 2.0,只需使用$name = ('Alice', 'Bob', 'Cindy')

答案 1 :(得分:1)

使用(在XSLT 1.0和XSLT 2.0中)

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

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

$name = ($seqOfNames)