XSLT附加到结果文档

时间:2009-07-13 11:57:58

标签: xslt code-generation saxon

我有一个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元素,但这似乎覆盖了以前写过的任何内容。

感谢。

2 个答案:

答案 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>