4

xslt 对我来说很新。是否可以做类似于我下面的代码的事情。我知道在其他模板语言中是可能的。

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

2 回答 2

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 选项,如果您不介意使用 empty class="",则if在 AVT(属性值模板)中使用 an:

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

then可能因上下文而异。

于 2013-04-08T15:02:42.057 回答
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 以及预期的输出。否则我们只能猜测。

于 2013-04-08T14:52:59.823 回答