2009-07-13 55 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