XSLT - 用类添加类?

时间:2010-05-26 09:21:20

标签: 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>

感谢。

2 个答案:

答案 0 :(得分:17)

相反:

<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处理器将自己修剪属性值的尾随空间,因此无需进行复杂的空间处理。

答案 1 :(得分:6)

您可以将当前的类属性值与新的属性值连接起来:

<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>