XSLT拡張関数( math )

今週は、XSLTの拡張関数の math の紹介です。
例題として、ノード集合の中から 数値で 最大( max ) と 最小( min )を表示してみます。

早速使い方を見てみましょう。

変換元のXMLは下記とします。

XSL変換は、下記のように、最大と最小を表示しています。
ちなみに、公式サイトのAPIによると max関数は static double max(NodeList nl);
なので、ノード集合を受け取って、最大の数値を返すという仕様のようです。

出力結果は、以下のようになります。

参考

参考までに、math拡張を使わない場合に 最大、最小を表示するXSLを紹介します。
xsl:for-each と xsl:sort を駆使して、なんとか同じ出力を得ることができます。

まとめ

XSLT拡張関数の math を紹介しました。
最大や最小であれば、参考に示したように、回りくどくても math拡張関数を使わなくても
何とか表示することができます。

しかし、公式サイトのAPIでは、平方根(sqrt) や 累乗(power)、対数(log)、三角関数(sin,cos,tan)も
使えるようなので、XSLT中で、数式処理が必要な場合は、利用を検討してはいかがでしょうか。