ビットマスクのフラグを指定する要素をビットマスクに変換するにはどうすればよいですか? 次の XML スキーマがあります。
たとえば、このXMLをどのように変換できますか
<Flags>
<Flag>1</Flag>
<Flag>3</Flag>
</Flags>
XSLT を使用してこの出力 XML に?
<Bitmask>10</Bitmask>
(10 = 1010 バイナリ - ビット 1 と 3 が設定されます)
手続き型プログラミング言語では、単純に次のようにします。
var bitmask = 0;
foreach(var falg in flags) {
bitmask = bitmask + pow(2,flag);
}
しかし、xsl:variable は静的であるため、これは xslt では不可能です。別のアプローチがありますか、またはこれを行うにはどうすればよいですか?