0

$answerXML ファイルの要素から抽出した属性で呼び出されるシーケンスがあります。内部$answerには次の 3 つ1, 3, 3の属性があります$p1, 3

これを実行して、発生回数を取得しようとしました

for $x in $p
return count (index-of($x, $answer)) 

別の投稿で解決策として見たので、エラーが発生しました。これを行う正しい方法は何ですか?

4

2 に答える 2

0

すべての属性をその値で並べ替えますか? 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 をサポートする必要があることに注意してください。

于 2012-04-06T15:34:53.443 に答える
0

index-of() に渡した引数を交換する必要があります。

for $x in $p
return count(index-of($answer, $x))

しかし、より簡単な方法は、述語で等しいかどうかをテストすることです。

for $x in $p
return count($answer[. eq $x])

これは、指定されたデータに対して同じ結果を生成します。

于 2012-04-06T21:38:49.137 に答える