是否可以将xsl变量中的文本添加到html标记内部?
<xsl:variable name="selected">
<xsl:if test="@class = 'selected'"> class="selected"</xsl:if>
</xsl:variable>
<li{$selected}></li>
答案 0 :(得分:5)
您不应该尝试将其写为文字文本,而应该查看xsl:element和xsl:attribute。粗略的例子:
<xsl:element name="li">
<xsl:attribute name="class">
<xsl:value-of select="$selected" />
</xsl:attribute>
</xsl:element>
答案 1 :(得分:5)
试试这个:
<xsl:element name="li">
<xsl:if test="@class = 'selected'">
<xsl:attribute name="class">
selected
</xsl:attribute>
</xsl:if>
</xsl:element>
如果需要xsl:if
,xsl:attribute
可以嵌套在class=""
中,而不是相反。如前所述,将其写为文字文本是不明智的。
答案 2 :(得分:3)
请注意,如果您足够小心,使其成为第一个孩子,则可以直接在<xsl:attribute>
标记内使用<li>
,而不是使用<xsl:element>
<li>
<xsl:if test="$selected">
<!-- Will refer to the last opened element, li -->
<xsl:attribute name="class">selected</xsl:attribute>
</xsl:if>
<!-- Anything else must come _after_ xsl:attribute -->
</li>