2009-07-07 6 views
1

xslに宣言されている変数と宣言されていない変数があります。それが宣言されているかどうかはどうすればわかりますか?xsl:変数が宣言されているかどうかを確認する方法

問題は2つのスタイルシートがあることです。親(グローバル変数が宣言されている場所)と子(グローバル変数が参照されている場所)。私は通常、親スタイルシートを呼び出して子スタイルシートを呼び出します。変数が宣言されているので、すべてが問題ありません。しかし、私はときどき子スタイルシートを単独で呼びます。

私にとって最も簡単な解決策は、変数を使用しようとする前に変数が宣言されているかどうかをチェックする方法です。

ご協力いただきまして誠にありがとうございます。

答えて

1

xslでは、変数が宣言されているかどうかを判断できません。

私が思いついた解決策は、変数を宣言した暫定的なxslファイルを持っていて、 "子"のxslファイルをインポートしていました。

1

これは必須ではありません。

XSLTは宣言型言語です。宣言されていない参照があるスタイルシートは、実行時エラーではなくコンパイル時エラーでは使用できません。

これは、スタイルシートがまったくコンパイルされても、定義されていない「宣言されていない変数」エラーには決して実行されません。

あなたは何をしようとしていますか?

+0

変更を参照してください。 (私は複数のスタイルシートを持っています。)しかし、入力のおかげで! – joe

0

あなたのスタイルシートが内容が不明な2番目のシートを参照していると仮定して、xsl:import(xsl:includeとは対照的)を試してください。

+0

子スタイルシートは、親をインポートまたはインクルードしません。変数が初期化されているかどうかを実行時に伝えるだけです。 – joe

+0

インポートまたはインクルードしない場合、関係を確立するためにどのようなメカニズムを使用していますか?インポートする場合は、インポートの優先順位が変数に値を設定するか、空の文字列を設定するように変数を宣言できます。 $ foo!= ''かどうかテストできます。 – steamer25

+0

親が子をインポートしていますが、実際には関係ありません。問題は、ANTが親ではなく子のスタイルシートだけを呼び出すことがあることがあるためです。この変数は子で宣言されることはないので、これはエラーをスローします。変数が宣言されているかどうかを確認し、何らかのアクションを実行する必要があります。 – joe

関連する問題