我有一个XSLT脚本用于代码生成,我处理多个输入XML文件,并将文件输出到Javascript代码。对于每个xml输入文件,我输出一个Javascript文件。
所以,我会发生以下文件/转换:
view1.xml -> view1.js
view2.xml -> view2.js
...
现在我还需要在XSL处理期间创建一个额外的文件,我需要将有关处理的每个输入文件的信息附加到一个公共Javascript文件。
所以,现在我会:
view1.xml -> view1.js / append to common.js
view2.xml -> view2.js / append to common.js
...
我的问题是,是否可以在处理多个输入文件时附加到文件?我目前正在使用Saxon 9.1.0.7,我查看了xsl:result-document元素,但这似乎覆盖了以前写过的任何内容。
感谢。
答案 0 :(得分:1)
不,我认为你不能在XSLT中附加到现有的(非XML,偶数)文件。
另一方面,将结果附加到文件很容易在运行转换的环境中完成。无论是编程语言还是shell,文本文件串联都应该是一个简单的练习。我建议你在那里做,而不是试图找到一些弯曲XSLT的方法。
答案 1 :(得分:0)
XSLT“document()”中有一个函数。您可以使用它来处理来自单个XSLT的多个xml输入文件,因此只有一个输出,我不确定它是否对您的情况有帮助。
有点像。
<xsl:apply-templates select="document('doc1.xml')"/>
<xsl:apply-templates select="document('doc2.xml')"/>
<xsl:apply-templates select="document('doc3.xml')"/>
<xsl:template match='nodeX">do something</xsl:template>
<xsl:template match='nodeY">do something else</xsl:template>