xslt - 如何使用 XProc 复制 XSLT 转换的主输出和 xsl:result-document
问题描述
我有一个 XProc 管道,它获取一个源文档并使用几个 <p:xslt> 步骤对其进行转换,沿途存储中间结果(我也需要这些)。
这非常简单并且效果很好。但在最后一步,输入已经是一个 html 文档,我的 xslt 看起来像这样:
<xsl:template match="div[@id = 'specification']">
<xsl:result-document href="spec.html">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:result-document>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
现在,如果我使用 XSLT 直接运行此转换,则转换的主要输出将是一个文件,其中包含除 who 之外的所有div
内容id="spec"
;并且第二个输出将是 的内容,根据 xsl:result-document 的要求div id="spec"
,它将进入。spec.html
不幸的是,XProc 没有为此创建输出xsl:result-document
,据我所知,它希望我们为此处理主要和次要输出端口。我已经多次阅读了规范和几个例子,但我仍然无法弄清楚应该相对简单的东西,如何从:
<p:xslt name="post-process">
<p:input port="source">
<p:pipe step="html" port="result"/>
</p:input>
<p:input port="stylesheet">
<p:document href="../stylesheets/html-post-process.xsl"/>
</p:input>
</p:xslt>
到 XProc 中的其他内容,这将给我两个不同的输出,并能够保存主要输出和辅助输出(là xsl:result-document)。
我将非常感谢您的提示或示例。
解决方案
推荐阅读
- python - 如何使用pdfrw在reportlab中设置图像的位置?
- android - 如何修复:Android 设备上的“QNetworkReply::SslHandshakeFailedError”
- mongodb - 将嵌套的 JSON 文档导入 Elasticsearch 并使其可搜索
- typescript - TypeScript 为“as X”定义接口
- c++ - 如何使检查字母(上和下)和()+ - * /的O(n)函数进行尾递归?
- xml - 从 xml 中删除多个节点
- javascript - 从一张表中获取日期时间并将其存储在另一张表中
- docker - 尝试使用 .Net Core 3.0 SDK(preview5)在 DevOps 管道中构建时抛出异常“错误 MSB3024:无法复制文件...”
- php - AJAX 请求正文在服务器端随机为空
- playframework - 反向代理 ion Swisscom appcloud cloudfoundry