2016-04-26 54 views
0

所以,我卡住了。xsl模板中的動態背景顏色代碼

我想從XML文件中讀取顏色代碼。每次我的xsl模板即將通過FOP 0.2生成爲pdf時,此xml文件都會有所不同。

所以我的想法是設置一個局部變量讀取xml文件的特定部分,將其寫入我的變量並將此值設置爲我的背景色。到目前爲止我失敗了。有沒有辦法做到這一點?

這是我走到這一步:

<xsl:variable name="color"><xsl:value-of select="HEAD/COLOR"/></xsl:variable> 

<fo:block font-weight="bold" font-family="Arial, sans-serif" font-size="10pt" background-color="#<xsl:value-of select="$color"/>" background-repeat="no-repeat" background-position="center"> 
    <xsl:call-template name="xxx" /> 
</fo:block> 

當然解析器告訴我,世界上沒有其他辦法,我可以用「<」背景色元素中。

:(

回答

0

您可以使用Attribute Value Templates這裏...

<xsl:variable name="color"><xsl:value-of select="HEAD/COLOR"/></xsl:variable> 

<fo:block font-weight="bold" font-family="Arial, sans-serif" font-size="10pt" 
      background-color="#{$color}" background-repeat="no-repeat" background-position="center"> 
<xsl:call-template name="xxx" /> 
</fo:block> 

大括號表明表達式進行評估,而不是字面的輸出。

<fo:block font-weight="bold" font-family="Arial, sans-serif" font-size="10pt" 
      background-color="#{HEAD/COLOR}" ... 

注意,你實際上並不需要在這裏使用一個變量,你也可以這樣做......