根据xslt语句添加html类

时间:2013-04-08 14:33:28

标签: xslt

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

  <div class="<xsl:if test="position()=1">myclass</xsl:if>">Hello</div> 

2 个答案:

答案 0 :(得分: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>

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

<xsl:attribute name="class" select="'myClass'"/>

另一个XSLT 2.0选项,如果您不介意空class="",则在AVT(Attribute Value Template)中使用if

<div class="{if (position()=1) then . else ''}">...</div>

then可能因环境而异。

答案 1 :(得分:1)

它应该是这样的:

<xsl:variable name="myclass" select="variablenode" />

<div class="adf">
<xsl:if test="yournode[position()=1]">
    <xsl:value-of select="$myclass"/>
</xsl:if>
Hello</div> 

但请告诉我们你的源XML,你到目前为止的XSLT以及预期的输出。否则我们只能猜测。

问候,彼得