2009-07-13 50 views
0

我有一个XSLT脚本,用于处理多个输入XML文件的代码生成,并将这些文件输出到Javascript代码。对于每个xml输入文件,我输出一个Javascript文件。XSLT附加到结果文档

所以,我有以下文件/转换存在的:

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

您是否正在寻找通用的解决方案或萨克森的正确配置来启用附加功能? – Yuval 2009-07-13 12:02:59

+0

如果可能,撒克逊特定的配置将会很好。 – Steve 2009-07-13 12:11:45

回答

1

不,我不认为你可以附加到XSLT中的现有(非XML,偶数)文件。

另一方面,将结果附加到文件很容易在运行转换的环境中完成。无论是编程语言还是shell,文本文件连接都应该是一个简单的练习。我建议你在那里做,而不是试图找到某种方式来弯曲XSLT来做到这一点。

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> 
+0

我不想指定输入文件名称。现在我正在处理输入目录中的所有文件,并为转换文件提供一个输出目录。将会创建更多的输入文件,并且我宁愿不必为每个新输入文件添加一个document()元素。 – Steve 2009-07-13 12:16:22