Это немного сбивает с толку, потому что ваша таблица стилей содержит version="1.0"
, но string-join
доступна только в XSLT 2.0.Тем не менее, если бы вы использовали XSLT 2.0, я бы ожидал, что concat
выйдет из строя, потому что //field_21/row/@StartDate
возвращает несколько узлов, что недопустимо в XSLT 2.0
Но, если вы действительно используете XSLT 2.0,Вы можете написать выражение следующим образом:
<xsl:value-of select="string-join(//field_21/row/concat(@StartDate, ' ', @EndDate, ' ', @DaysCount, ' ', @Diagnoz), ';')"/>
Или вот так, чтобы воспользоваться атрибутом separator
, доступным в XSLT 2.0.
<xsl:value-of select="//field_21/row/concat(@StartDate, ' ', @EndDate, ' ', @DaysCount, ' ', @Diagnoz)" separator="; " />
Если, однако, выможно использовать только XSLT 1.0, вам придется использовать xsl:for-each
(или xsl:apply-templates
<xsl:for-each select="//field_21/row">
<xsl:if test="position() > 1">; </xsl:if>
<xsl:value-of select="concat(@StartDate, ' ', @EndDate, ' ', @DaysCount, ' ', @Diagnoz)" />
</xsl:for-each>