Xml 如何使用XQuery计算属性的出现次数

Xml 如何使用XQuery计算属性的出现次数,xml,xquery,Xml,Xquery,我正在使用XQuery统计社交媒体上相关评论的出现次数。然而,如果评论是女性的话,我只想统计这些事件。(这是为了大学的一个与性别有关的研究项目 到目前为止,我已经使用XQuery统计了所有女性发表评论的次数: for $t in doc ("women.xml") let $a:=$t//comment/@gender="female" return count ($a) 然而,我需要一些帮助,找出我将如何调整这一点,以解释女性所说的特定于外表的评论 感谢您的帮助首先,请注意 let $a:=

我正在使用XQuery统计社交媒体上相关评论的出现次数。然而,如果评论是女性的话,我只想统计这些事件。(这是为了大学的一个与性别有关的研究项目

到目前为止,我已经使用XQuery统计了所有女性发表评论的次数:

for $t in doc ("women.xml")
let $a:=$t//comment/@gender="female"
return count ($a)
然而,我需要一些帮助,找出我将如何调整这一点,以解释女性所说的特定于外表的评论

感谢您的帮助首先,请注意

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。

发布包含您不希望和不希望选择的注释的示例XML,并明确指定区分您想要和不想要的注释的标准。如果没有这些详细信息,您的问题将无法回答。
计数(//comment[@gender=“female”])
将返回
注释
元素的数量,这些元素的
@gender
属性值等于
“female”