我正在使用XQuery来计算社交媒体上的一个帖子上相关评论的出现次数。但是,如果评论是由女性提出的,我只想计算这些事件。 (这是针对Uni的性别相关研究项目。
到目前为止,我已经让XQuery使用这个来计算女性所有评论的出现次数:
for $t in doc ("women.xml")
let $a:=$t//comment/@gender="female"
return count ($a)
然而,我需要一些帮助,找出我如何调整这一点以解释女性所说的外观特定评论的出现。
感谢您的帮助
答案 0 :(得分:2)
首先,请注意
let $a:=$t//comment/@gender="female" return count ($a)
总是返回1.那是因为" ="是一个布尔值,布尔值是一个长度为1的序列。你想要的是
let $a:=$t//comment[@gender="female"] return count ($a)
或更简单
count($t//comment[@gender="female"])
现在,如果您只想定义"特定于外观的"评论,你可以做到
count($t//comment[@gender="female"][local:is-appearance-specific(.)])
然后你需要定义一个函数
declare function local:is-appearance-specific(
$c as element(comment)) as xs:boolean {
....
};
如果评论为"特定于外观"。
,则返回true