XSLT For-each to display in a semicolon-delimited value instead of separate tags

Solution 1:

In XSLT 2 and later you can use

<LeadActor>
  <xsl:value-of select="/StringAssetInfoMulti[attrTagName='LeadActor']/values/s" separator=";"/>
</LeadActor>

In XSLT 1 it is kind of obvious that you need to use for-each or apply-templates processing and then output the ; as a separator with <xsl:text>;</xsl:text> for either all but the last or all but the first item e.g.

<xsl:for-each select="/StringAssetInfoMulti[attrTagName='LeadActor']/values/s">
  <xsl:if test="position() > 1">
    <xsl:text>;</xsl:text>
  </xsl:if>
  <xsl:value-of select="."/>
</xsl:for-each>