xsl:exsl:document中的call-template和xsl:with-param

时间:2016-09-18 15:27:08

标签: xslt xslt-1.0 exslt

我尝试将参数提交到exsl:document节点中调用的模板,但模板始终保留默认参数,我不明白。

有人可以帮助我吗?

<xsl:template 
    match="/office:document/office:body/office:spreadsheet/table:table">

我在这里定义了主输入文件中的变量,包括输入文件列表。

然后为每个输入文件:

    <xsl:for-each select="document($SourceFilePath)">

我创建了一个输出文件:

        <exsl:document href="{$SourceFilePath}.result.fodt">

            <xsl:call-template name="remove-meta-user-defined"/>

问题在于:

            <xsl:call-template name="add-meta-user-defined">
                <xsl:with-param
                    name="add-element"
                    select="'a dog'"/>
            </xsl:call-template>
            <xsl:call-template name="identity"/>

        </exsl:document>

    </xsl:for-each>


</xsl:template>

模板定义如下:     

<xsl:template
    match="/office:document/office:meta/meta:document-statistic"
    name="add-meta-user-defined"
    mode="OutputTemplate">
    <xsl:param
        name="add-element"
        select="'a cat'"/>
    <xsl:copy>
        <xsl:apply-templates select="@*|node()" mode="OutputTemplate"/>
    </xsl:copy>
    <xsl:element name="meta:user-defined">
        <xsl:value-of select="$add-element"/>
    </xsl:element>
</xsl:template>

<xsl:template
    match="node()|@*"
    name="identity"
    mode="OutputTemplate">
    <xsl:copy>
        <xsl:apply-templates select="node()|@*" mode="OutputTemplate"/>
    </xsl:copy>
</xsl:template>

0 个答案:

没有答案