根据xslt语句添加html类

pet*_*hel 4 xslt

xslt对我来说很新鲜.是否可以执行类似于下面的代码.我知道其他模板语言是可行的.

  <div class="<xsl:if test="position()=1">myclass</xsl:if>">Hello</div> 
Run Code Online (Sandbox Code Playgroud)

Dan*_*ley 7

你可以包裹xsl:attribute一个xsl:if......

    <div>
        <xsl:if test="position()=1">
            <xsl:attribute name="class">myclass</xsl:attribute>
        </xsl:if>
        <xsl:text>Hello</xsl:text>
    </div>
Run Code Online (Sandbox Code Playgroud)

此外,在XSLT 2.0中,您可以这样写xsl:attribute:

<xsl:attribute name="class" select="'myClass'"/>
Run Code Online (Sandbox Code Playgroud)

另一个XSLT 2.0选项,如果你不介意有空class="",是if在AVT(属性值模板)中使用:

<div class="{if (position()=1) then . else ''}">...</div>
Run Code Online (Sandbox Code Playgroud)

所述then可取决于环境而改变.