2016-04-01 87 views

回答

1

您可以使用string()或更緊湊的.代替text()正確地考慮到不包含任何文本節點元素:

let $r_nodes := count(doc('test.xml')//r[. ne 'unspecified']) 
return 
    $r_nodes 
2

您正在嘗試比較的有效字符串值文本節點(因此text())。任何空元素都不會有文本節點。因此,而不是你的查詢應該是這樣的:

let $r_nodes := count(doc('test.xml')//r[text() ne 'unspecified']) 
return 
    $r_nodes 

這樣你比較r元素的有效字符串值,而不是它的文本節點。

+0

感謝您的編輯,所以我怎麼能得到6,而不是4 ? –

+0

看到我的答案!這會給你'6'。 – adamretter

+1

我認爲使用string()而不是文本()? ,我測試了它,似乎解決了我的問題。 –