2016-12-28 5 views
1

のすべての要素に述語を適用します。XSL 2.0 - 私は、このようなノードを持つグループ

属性L.によってグループ化された私の目標は、 n * ProcessTime * units

の値を取得するワンライナーを書くことです

<Node name="_1" W="0" n=".2" L="A" ProcessTime="56" units="ms"/> 
<Node name="_2" W="0" n=".8" L="B" ProcessTime="6" units="us"/> 

ユニットの乗数を得るには、for-each-groupループのグループ分けの範囲に変数

<xsl:variable name="units"> 
    <multiplier ns="1E-9" ms="1E-3" us="1E-6"/> 
</xsl:variable> 

もあります。

<xsl:value-of select="sum(current-group()/(@numberOfVisits * @ProcessTime * $units/multiplier/@*[name()=current()/@units]))"/> 

それは動作しますが、current-group()

質問の他のすべての要素の上にそれを適用する、唯一の第一の要素の@units値をされて使用しています:どのように私は

は現在、私はこの表現を持っていますグループ内のすべての要素の値を個別に使用するこの式を作成しますか?

答えて

1

sum(for $node in current-group() return $node/(@numberOfVisits .. $units/ multiplier/@*[name() = $node/@units]))

のような式を使用してください。
関連する問題