MultiSelectDisplay
This template lets you display the values in a multiselect column "nicely", using a separator of your choosing. You pass it a multi-select column value and the separator character(s).
This example would return the values in the States column with the ';' separator replaced by the vertical bar '|'.
<xsl:variable name="NiceDisplay"> <xsl:call-template name="MultiSelectDisplay"> <xsl:with-param name="MultiSelectValue" select="@States"/> <xsl:with-param name="MultiSelectDelimiter" select="';'"/>
<xsl:with-param name="MultiSelectSeparator" select="'|'"/>
</xsl:call-template> </xsl:variable>
<xsl:template name="MultiSelectDisplay"> <xsl:param name="MultiSelectValue"/> <xsl:param name="MultiSelectDelimiter"/> <xsl:param name="MultiSelectSeparator"/> <xsl:choose> <xsl:when test="contains($MultiSelectValue, $MultiSelectDelimiter)"> <xsl:value-of select="concat(substring-before($MultiSelectValue, $MultiSelectDelimiter), $MultiSelectSeparator)" disable-output-escaping="yes"/> <xsl:call-template name="MultiSelectDisplay"> <xsl:with-param name="MultiSelectValue" select="substring-after($MultiSelectValue, $MultiSelectDelimiter)"/> <xsl:with-param name="MultiSelectDelimiter" select="$MultiSelectDelimiter"/> <xsl:with-param name="MultiSelectSeparator" select="$MultiSelectSeparator"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$MultiSelectValue" disable-output-escaping="yes"/> </xsl:otherwise> </xsl:choose> </xsl:template>