0

xslt 変換を実行する Java アプリケーションで作業しています。Java によって提供されるパラメーターを使用して、ノードを xslt ドキュメントに一致させたいと思います。次のようなことを行う正しい方法は次のとおりです。

<xsl:template match="//m:properties/*[contains($pattern,name())]"> 

アプリケーションを起動すると、パターンが定義されていないが、setParameter メソッドを使用して設定しているため、スタイルシートをコンパイルできないと主張し、同じ方法で定義された別のパラメーターを別のコンテキストで使用できたからです。 . 前もって感謝します

4

1 に答える 1

1

が必要です

<xsl:param name="pattern" />

スタイルシートでパラメーターを宣言する場合、setParameter呼び出しだけでは十分ではありません。ただし、XSLT 1.0 仕様によると、match 式に のような変数/パラメーター参照を含めることが許可されていないという別の問題があります$pattern。一部のプロセッサはとにかくそれらを許可しますが (Xalan の少なくとも一部のバージョンを含む)、それが機能しない場合は、マッチング ロジックを変更する必要があります。たとえば、一致するテンプレートを定義し、パターンに一致する要素//m:properties/*のみを呼び出すなどです。 apply-templates.

于 2012-10-30T17:02:08.610 に答える