$answer
XML ファイルの要素から抽出した属性で呼び出されるシーケンスがあります。内部$answer
には次の 3 つ1, 3, 3
の属性があります$p
。1, 3
これを実行して、発生回数を取得しようとしました
for $x in $p
return count (index-of($x, $answer))
別の投稿で解決策として見たので、エラーが発生しました。これを行う正しい方法は何ですか?
すべての属性をその値で並べ替えますか? group by ステートメントを使用すると、期待どおりの結果が得られる場合があります。
for $a in (attribute a {'A'}, attribute b {'B'}, attribute a {'A'})
group by $v := $a
return concat(count($a), ': ', $v)
ただし、XQuery 実装は XQuery 3.0 をサポートする必要があることに注意してください。
index-of() に渡した引数を交換する必要があります。
for $x in $p
return count(index-of($answer, $x))
しかし、より簡単な方法は、述語で等しいかどうかをテストすることです。
for $x in $p
return count($answer[. eq $x])
これは、指定されたデータに対して同じ結果を生成します。