最大 3 つの 3 種類の値が必要です。私はこれに似た構造を持っています。
注: 最初の 2 つの回答は、前の例の xml に基づいています (夜のセット 2 では、平均以上の最大値は 8 でした)。これは紛らわしいので、7に変更しました。
<data>
<record>
<max>60</max>
</record>
<day>
<set>
<average>49</average>
<max-above-average>3</max-above-average>
</set>
<set>
<average>45</average>
<max-above-average>9</max-above-average>
</set>
</day>
<night>
<set>
<average>50</average>
<max-above-average>5</max-above-average>
</set>
<set>
<average>52</average>
<max-above-average>7</max-above-average>
</set>
</night>
</data>
今、私は昼夜を問わず最高の記録が必要です。これは最大値です: 60、この例のレコードの値: 60 = 60、> 49 + 3、45 +9、50 + 5、52+7。昼と夜の最大値を計算する必要があります。このため
max(//レコード/最大 | //日/セット/(平均 + 平均を上回る最大)) | //夜/セット/(平均+最大平均以上))
動作しません。|-記号はノードに対してのみ機能します。次のエラーが発生します。
'|' の第 2 オペランドの必須項目タイプ ノード()です。指定された値の項目タイプは xs:double です
xpath 2.0 と xslt 2.0 を使用しています。