2009-07-13 18 views
0

複数の入力XMLファイルを処理し、ファイルをJavascriptコードに出力するコード生成に使用するXSLTスクリプトがあります。それぞれのxml入力ファイルに対して、1つのJavascriptファイルを出力します。XSLT結果ドキュメントに追加

だから、私はoccuring以下のファイル/変換を持っています:

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

一般的な解決法または追加することを可能にするSaxonの正しい構成をお探しですか? – Yuval

+0

可能であれば、Saxon固有の設定は問題ありません。 – Steve

答えて

1

いいえ、XSLT内から既存の(XML以外の)ファイルに追加することはできません。

一方、結果をファイルに追加することは、変換を実行する環境で簡単に実行できます。プログラミング言語でもシェルでも、テキストファイルの連結は簡単なエクササイズでなければなりません。 XSLTを曲げるための何らかの方法を見つけようとするのではなく、あなたがそこで行うことをお勧めします。

+0

良い点。処理される各入力ファイルの属性が必要ですが、スクリプト言語を使用してこれを簡単に抽出し、この情報を追加することもできます。ありがとう。 – Steve

+0

hmm ..私は逃しました、存在しない問題を解決しようとしません:-) –

0

XSLT "document()"に関数があります。これを使用して、単一のXSLTから複数のXML入力ファイルを処理することができます。したがって、単一の出力を処理することができます。

何かのようなものです。

+0

私は、入力ファイル名を指定する必要がない方が好きです。今私は入力ディレクトリ内のすべてのファイルを処理し、変換ファイルの出力ディレクトリを提供しています。さらに多くの入力ファイルが作成されます。新しい入力ファイルごとにdocument()要素を追加する必要はありません。 – Steve

+0

の場合、別のXMLファイルをその場で書くことができます(他のスクリプトを使用して)。すべてのファイルの名前が含まれていてそれを処理し、XSLTのループ内にdocument()タグを追加します。これは今の私が考えることができる最高です。 :-) –

+0

私はより直接的な方法があることを望むだろうが、これは他のオプションがない場合に動作するように聞こえる。私は変換のためにAntを使用しているので、ビルドでスクリプト呼び出しを追加し、別の変換を呼び出すことができます。ありがとう – Steve