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>

xsl:attributeまた、XSLT 2.0 では、次のように記述できます。

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

XSLT 2.0 のもう 1 つのオプションは、空であってもかまわない場合は、AVT ( Attribute Value Template )で anclass=""を使用することです。if

<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 に答える