2012-04-06 63 views
0

我有一個名爲$answer的序列,其中的屬性是從XML文件中的元素中提取的。裏面$answer我有以下3個屬性:1, 3, 3,並呼籲$p帶屬性的另一種序列:1, 3計算XQuery中序列中屬性的出現次數

我試圖做這做

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

獲得出現的次數,因爲我認爲這是一個解決方案在另一個帖子中,但它給了我錯誤。什麼是正確的方法來做到這一點?

+1

它使用哪種實現提供了什麼錯誤?你的輸入序列究竟是什麼樣的(可能只是像你在查詢中那樣寫輸入,以便我們可以使用它)以及輸出應該是什麼?我還沒有完全意識到你的問題。 – 2012-04-06 15:41:15

回答

0

你想按照它的值對所有屬性進行排序嗎?這組語句可能會給你預期的結果:但是,請注意,你的XQuery實現需要支持XQuery 3.0。

+0

我最終想要的是返回$ answer(一次)中出現1次的次數,並且$ answer(2)中出現3次。我正在使用Xquery 1.0,因此不幸的是沒有組 – AaronLee 2012-04-06 15:44:18

0

你需要給你傳遞的參數交換到指數的():

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

但是一個簡單的方法是在謂詞測試相等:

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

產生相同給定數據的結果。