在发布此问题之前,我提到了 [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>
提前致谢..!