XSLT - Добавление класса к чему-то с классом?
При использовании XSLT как применить класс к элементу, который уже имеет класс? Как я это делаю, он заменяет класс, который уже присутствует? Как добавить класс в дополнение к существующему классу? Мой код выглядит следующим образом:
<xsl:if test="data[@alias = 'off'] = 1">
<xsl:attribute name="class">off</xsl:attribute>
</xsl:if>
<xsl:if test="$currentPage/ancestor-or-self::node/@id = current()/@id">
<xsl:attribute name="class">active</xsl:attribute>
</xsl:if>
Спасибо.
Ответы
Ответ 1
Другой способ:
<xsl:attribute name="class">
<xsl:if test="data[@alias = 'off'] = 1">off </xsl:if>
<xsl:if test="$currentPage/ancestor-or-self::node/@id = current()/@id">active </xsl:if>
</xsl:attribute>
Обратите внимание на дополнительное пространство, которое я помещаю после каждого значения атрибута. XSLT-процессор самостоятельно обрезает конечное пространство из значения атрибута, поэтому нет необходимости выполнять сложную обработку пространства.
Ответ 2
вы можете связать текущее значение атрибута класса с новым:
<xsl:if test="$currentPage/ancestor-or-self::node/@id = current()/@id">
<xsl:attribute name="class">
<xsl:value-of select="concat(@class,' active')"/>
</xsl:attribute>
</xsl:if>