При использовании 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>
Спасибо.
И наоборот:
<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-процессор самостоятельно отсекает конечное пространство от значения атрибута, поэтому нет необходимости выполнять сложную обработку пространства.
вы можете объединить текущее значение атрибута класса с новым:
<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>