2009-08-02 114 views
2

是否可以將xsl變量中的文本添加到html標籤的內部,如下所示?XSLT:在html標籤內添加文本

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

<li{$selected}></li> 

回答

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=""是期望的。如前所述,將其作爲文字文本編寫是不明智的。

+0

爲了易讀,最好避免不必要的xsl:元直接調用並嵌入li元素。 – 2009-08-03 06:12:53

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.

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>