我制作了一个 xslt 文件来用另一个 xml 文件 (File1.xml
) 更正另一个文件 (File1CORR.xml
)。
问题是我有 50 个 xml 文件需要更正,并且我必须重命名文档才能在 XSLT 文件中打开 50 次。正如您所看到的,文件命名非常相似。所以,我想知道是否有没有办法通过使用一些技巧来避免重命名,例如:
<xsl:if test="not($myKey1=document('fichier1CORR.xml')/Context/descriptor/deleteBB/.|document('fichier1CORR.xml')/Context/descriptor/replaceBB/.)">
可能会使用 concat 函数来替换以引用输入文件 & CORR & .xml?
最佳答案
将要更正的文件的路径作为外部(全局)参数传递给转换:
<xsl:param name="pFilePath"/>
<xsl:variable name="vDoc" select="document($pFilePath)"/>
<xsl:template match="/">
<xsl:apply-templates select="$vDoc/node()"/>
</xsl:template>
XSLT 2.0 允许在一次转换中执行所有 XML 文档更正。所有文件路径都可以从单独的 XML 文档中读取,并且可以对所有指定文档进行相同的更正。 <xsl:result-document>
指令将用于保存每个已更正的 XML 文档,并继续转换并更正剩余未处理的文档。
关于xslt - 使用文档功能(XSLT)时避免重命名要打开的文件的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9501669/