XSLT:在html标记内添加文本

时间:2009-08-02 09:46:14

标签: xslt

是否可以将xsl变量中的文本添加到html标记内部?

<xsl:variable name="selected">
   <xsl:if test="@class = 'selected'"> class="selected"</xsl:if>
</xsl:variable>

<li{$selected}></li>

3 个答案:

答案 0 :(得分:5)

您不应该尝试将其写为文字文本,而应该查看xsl:element和xsl:attribute。粗略的例子:

<xsl:element name="li">
    <xsl:attribute name="class">
        <xsl:value-of select="$selected" />
    </xsl:attribute>
</xsl:element>

Full documentation here.

答案 1 :(得分:5)

试试这个:

<xsl:element name="li">
    <xsl:if test="@class = 'selected'">
        <xsl:attribute name="class">
            selected
        </xsl:attribute>
    </xsl:if>
</xsl:element>

如果需要xsl:ifxsl: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>