Xml

XSLTパラメータの使用; &



Usage Xslt Params



解決:

最適なXSLTパラメータの使用方法を説明してください。の面では

どこでもグローバルレベルで指定できます(の子として)xsl:stylesheet)またはテンプレート内にある場合は、その子である必要があり、xsl:paramの子xsl:template。



これは、テンプレートまたは変換全体(グローバルの場合)を可能にする機能です。xsl:param)は、テンプレートまたは変換全体の呼び出し元/イニシエーターからそれぞれさまざまなデータを受信します。

テンプレート/トランスフォーメーションの呼び出し元/イニシエーター側では、パラメーターはxsl:with-param命令。それはの子になることができますxsl:apply-templatesまたはxsl:call-template。



NSどちらかの名前属性xsl:paramまたはxsl:with-paramは必須です。パラメータを識別します。

の選択属性xsl:with-paramを使用して指定できます どれか XPath式。その評価は、呼び出された/適用されたテンプレートに渡されます。

または、の内容(本文)で値を指定することもできます。xsl:with-param。



xsl:with-paramには、次のいずれかが必要です。属性または本文を選択します。しかし、両方ではありません。

NSxsl:paramは、select属性またはbodyを持つこともできます。この場合、これらは指定します デフォルト値 この名前のパラメーターが呼び出し元によって指定されていない場合に使用されます。

最後に、これらの概念のほとんどを示す完全な例を次に示します。

0 '>

このXMLドキュメントに適用すると...

私たちが本当に愛しているスポーツスター、嫌いなもの、嫌いなもの

...結果は...

私たちが本当に好きなスポーツスター、嫌い、嫌い私たちが本当に愛しているスポーツスター、不承認を愛する、不承認私たちが本当に愛しているスポーツスター、嫌いを愛している、嫌い

説明

  1. NS置換テンプレートは2回呼び出されます。両方の呼び出しでpTextパラメータは省略されています。そのデフォルト値は、呼び出されたテンプレートによって使用されます。

  2. 最初の呼び出しはパターンと置換パラメーターを提供するので、「愛」はに置き換えられます'お気に入り'。

  3. グローバルパラメータの値に注意してください$ pTargetと$ pReplacementが渡されます。変換のイニシエーターがこれらのグローバルパラメーターに他の値(このコードで使用されるデフォルトではない)を渡すことを決定した場合、これらの値はデフォルトではなくテンプレートを置き換える'愛と'お気に入り'。

  4. 2番目の呼び出しではパラメータ値がまったく提供されないため、テンプレートの置換が使用されます-文字列「hate」は文字列に置き換えられます「不承認」。

  5. 注意してくださいreplaceテンプレートはそれ自体を再帰的に呼び出すため、パターンのすべての出現が置換によって置き換えられます。

  6. また、の値再帰呼び出しのpTextパラメーターは静的ではありませんが、動的に計算されます。

  7. 3回目テンプレートの置換は外部から開始されますxsl:apply-templates。ここでは、テンプレートが両方を持つことができることも示しています一致し、name属性を同時に使用すると、このようなテンプレートを両方を使用して開始できる可能性があります。xsl:apply-templatesおよびxsl:call-template。


これは、別のテンプレートで定義されたパラメーターを渡すために使用されます。