xslt对我来说很新鲜。是否可以执行类似于下面的代码。我知道其他模板语言是可行的。
<div class="<xsl:if test="position()=1">myclass</xsl:if>">Hello</div>
答案 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以及预期的输出。否则我们只能猜测。
问候,彼得