2011-09-02 35 views
4

我有以下XSL轉換:XSLT:「XSL:價值的」屬性內

<xsl:for-each select="refsect1[@id = 'seealso']/para/citerefentry"> 
    /// <seealso cref=""/> 
    <xsl:value-of select="refentrytitle" /> 
</xsl:for-each> 

我怎樣才能把refentrytitle的價值在的CREF屬性seealso標籤中模板?

回答

5

我不知道如何把refentrytitle的價值在CREF 的屬性模板中的seealso標籤。

只要把你的表情大括號中(這被稱爲Attribute Value Templates或者乾脆AVT語法)是這樣的:

<seealso cref="{refentrytitle}"/> 
+0

@Luca:好的,例如'{字符串長度(refentrytitle)}'。一般來說,您可以像使用'xsl:value-of select'一樣使用XPath函數。 –

+0

這是實現結果的更緊湊和更靈活的方式。謝謝! – Luca

3

你可以這樣做:

<xsl:for-each select="refsect1[@id = 'seealso']/para/citerefentry"> 
    /// <xsl:element name="seealso"> 
    <xsl:attribute name="cref"> 
     <xsl:value-of select="refentrytitle" /> 
    </xsl:attribute> 
    </xsl:element> 
</xsl:for-each> 

或者你很可能只是這樣做:

<xsl:for-each select="refsect1[@id = 'seealso']/para/citerefentry"> 
    /// <seealso cref="{refentrytitle}" /> 
</xsl:for-each> 
+0

是否有可能迫使短標籤* *? – Luca

+0

我不確定是否可以用前者來控制它,也就是說它可能只是由XSLT處理器決定。 – James