使用参数进行两步XSLT转换

时间:2012-12-04 23:39:52

标签: xslt dynamic

我正在尝试动态生成一个样式表,该样式表将输出将使用参数的模板,但解析器正在尝试插入第一步中第二步的变量。 我将从XSLT转到XSLT(别名axsl)然后转到XSL-FO

<xsl:template match="/">
    <axsl:stylesheet version="1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format">
        <axsl:template match="/">

            <axsl:param name="region-before-height" select="'1.75in'"/>

            <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
                <fo:layout-master-set>
                    <fo:simple-page-master master-name="single-transcript" axsl:use-attribute-sets="page-portrait">
                        <fo:region-body />
                        <fo:region-before extent="{$region-before-height}"/>

                    </fo:simple-page-master>
                </fo:layout-master-set>
                <axsl:apply-templates/>
            </fo:root>
        </axsl:template>
    </axsl:stylesheet>
</xsl:template>

我收到运行时错误,说“尚未声明变量'region-before-height'”。 什么是正确的语法,以便{$ region-before-height}仅在第二次转换期间被解释?

1 个答案:

答案 0 :(得分:2)

我认为你需要双花括号:

<fo:region-before extent="{{$region-before-height}}"/>