【发布时间】:2019-10-21 16:23:09
【问题描述】:
如何使用 XSLT 覆盖现有 (XML) 文件?
目前,使用<xsl:result-document/> 我得到以下错误
无法写入已读取的 URI
我之前找到了advice 来删除文件,但他们没有解释如何删除。我想知道是否应该有一个更简单的解决方案来做到这一点。
这里是示例代码。我在 Oxygen XML 编辑器 20.1 中使用 Saxon 9.8.0.12
<xsl:variable name="process">
<xsl:apply-templates mode="process" select="doc($processedFile)"/>
</xsl:variable>
<xsl:template match="/">
<xsl:result-document href="{$processedFile}" indent="yes" method="xml">
<xsl:copy-of select="$process"/>
</xsl:result-document>
</xsl:template>
【问题讨论】:
-
当您提到 oXygen 时,我认为您可以考虑使用带有
p:xslt步骤的 XProc,这样您应该能够使用相同的文件进行输入和输出,并且 XProc 将允许您覆盖它一个处理步骤的文件。 oXygen 支持 XProc。使用单个 XSLT 转换无法写入已读取的 URI。 -
谢谢。我会检查一下。