如何解决将相同的生成文件输出到多个输出位置
我正在使用 XSLT(从终端触发)在它们自己的文件夹结构(例如“doc-1-folder”、“doc-2-folder”)中构建 2 个单独的 XHTML 文档。每次构建时,我都希望有一个“本地”输出,但我还添加了一个共享存储文件夹,我希望输出也能到达。
XSLT 的每个触发器应该因此产生相同的输出文件两次, 一个到其本地文件夹,一个到共享文件夹。
想要复制文档构建的原因是我将合并一些文档并希望执行调用存储文件夹的合并。
一个简短的说明:
制作 doc-1:
/doc-1-folder/myDoc-1.xhtml
/shared/storage/myDoc-1.xhtml
制作 doc-2:
/doc-2-folder/myDoc-2.xhtml
/shared/storage/myDoc-2.xhtml
在存储中会产生:
/shared/storage/myDoc-1.xhtml
/shared/storage/myDoc-2.xhtml
在这里阅读: https://www.saxonica.com/documentation10/index.html#!using-xsl/commandline, 看起来只能定义一个带有“-o”标志的输出文件。
是否可以定义多个输出文件?或者我是否必须创建几个 XSLT 脚本来处理(相同的)输出两次?
解决方法
如果你想在 XSLT 中完成这一切,你可以使用逻辑
<xsl:variable name="outputDoc">
... generate the output ...
</xsl:variable>
<xsl:result-document href="firstOutput.xml">
<xsl:copy-of select="$outputDoc"/>
</xsl:result-document>
<xsl:result-document href="secondOutput.xml">
<xsl:copy-of select="$outputDoc"/>
</xsl:result-document>
如果您使用的是用于 Saxon (s9api) 的 Java API,您可以通过编写一个 ResultDocumentHandler
将输出定向到一个 net.sf.saxon.s9api.TeeDestination
来更冒险和更高效飞到两个不同的地方。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。