实际上不可能在 xslt 中做这样的事情,因为变量是不可变的。可能有解决方法,但您必须更详细地指定您的需求。
编辑:
如果您的输入是字符串,其值以逗号分隔...
<xsl:variable name="inputString" select="'field1,field2,field3a,field4,field3b'" />
...你可以使用tokenize()
函数...
<xsl:variable name="tokenized" select="tokenize($inputString, ',')" />
...然后选择与您的条件相对应的项目
<!-- Select item corresponding to condition (e.g. it contains 3). Take first one if there are several such items -->
<xsl:value-of select="$tokenized[contains(., '3')][1]" />
编辑2:
您可以使用(xslt 2.0) 的separator
属性xsl:value-of
来输出分隔值。
假设以下变量
<xsl:variable name="list">
<item>first</item>
<item>second</item>
<item>third</item>
</xsl:variable>
这<xsl:value-of select="$list/item" separator="," />
使得所需的输出first,second,third