xsl模板

时间:2016-04-26 12:23:10

标签: xml xslt xsl-fo

所以,我被卡住了。

我正在尝试从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>

当然解析器告诉我,我无法使用“&lt;”在background-color元素中。

:(

1 个答案:

答案 0 :(得分: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}" ...

请注意,您实际上并不需要在此处使用变量。你也可以这样做....