0

在发布此问题之前,我提到了 [stackoverflow][1],因为遇到了同样的问题,我希望向大家提问..

我有一个 XSLT 转换,用于创建四个输出,xsl:result-document当我使用氧气工具运行它时,它会创建所需的输出。但我想从 java 实现它。已经从 java 实现了撒克逊方法。Saxon-HE:9.7.0-14 版本 XSLT 版本:2

一个文件的示例 XSLT:

<xsl:template match="/" mode="aa">
        <xsl:param name="book-name" tunnel="yes"/>

        <xsl:result-document href="{$book-name}.opf"
                             doctype-public="+//ISBN 0-9673008-1-9//DTD OEB 1.2 Package//EN"
                             doctype-system="http://openebook.org/dtds/oeb-1.2/oebpkg12.dtd"
                             indent="yes">

            <xsl:apply-templates mode="#current"/>
        </xsl:result-document>
    </xsl:template>

我不知道为什么这在 Java 上不起作用,尽管它正在运行纯转换。我是否需要为此添加外部 jar。这并没有给我任何错误或输出。

注意:当我添加 xsl:comment 或其他标签时,它正在 Java 上运行,并且我得到了正确的输出。

  • XSLT 用于创建一个文件

        <xsl:call-template name="validate-source-book"/>
    
        <xsl:variable name="pre-processed">
            <xsl:apply-templates mode="pre-processing"/>
        </xsl:variable>
    
        <xsl:variable name="structured">
            <xsl:apply-templates select="$pre-processed" mode="structuring"/>
        </xsl:variable>
    
        <xsl:call-template name="generate-output-files">
            <xsl:with-param name="book-name" select="$book-name" tunnel="yes"/>
            <xsl:with-param name="structured-document" select="$structured"/>
        </xsl:call-template>
    </xsl:template>
    

        <xsl:result-document href="{$book-name}.opf"
                             doctype-public="+//ISBN 0-9673008-1-9//DTD OEB 1.2 Package//EN"
                             doctype-system="http://openebook.org/dtds/oeb-1.2/oebpkg12.dtd"
                             indent="yes">
    
            <xsl:apply-templates mode="#current"/>
        </xsl:result-document>
    </xsl:template>
    

提前致谢..!

4

0 回答 0