32 ビット文字列変数を置き換えようとしています。最初は、すべての値が「0」です。
$bitmask:="00000000000000000000000000000000"
いくつかのインデックス値があり、これらのインデックスの値を「1」に置き換える必要があります。
たとえば、インデックス値 = (3,10) があります。
期待される結果は次のとおりです。
$bitmask:="00100000010000000000000000000000"
実際に私はそれをしました:)しかし、私のビットマスク値にはスペース文字があります。スペース文字を削除できませんでした。
私の作業コード;
$serviceBits := tokenize('0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0',',')
<services>
{
for $t at $pos in $serviceBits
let $temp := ''
return
if($pos = data($myElement/ns:position)) then
concat($temp, '1')
else
replace(concat($temp, $t)," ","")
}
</services>
そして、私の作業コードの結果は次のとおりです。
<services>0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0</services>