Как получить количество для более чем одного кода в зависимости от атрибутов - PullRequest
0 голосов
/ 26 апреля 2018

Я использую XQuery для подсчета вхождений как комментариев, связанных с внешностью, так и комментариев об объективации в ветке социальных сетей. Однако я хочу посчитать их по полу комментаторов.

На данный момент у меня есть XQuery для подсчета всех появлений комментариев к внешнему виду в соответствии с их полами, используя это:

for $sex in ("female", "male")
for $t in doc ("MEN.xml")
return count($t/thread/comment[@gender=$sex]/appearance)

Я также обнаружил, что если я настрою обратную линию, то это:

return count($t/thread/comment[@gender=$sex]/objectification)

вместо этого он вытягивает количество комментариев для объективации в соответствии с полом. Однако мне было интересно, можно ли как-то объединить эти два, так что я получаю все необходимое мне количество с одним XQuery.

Пока я придумал это:

for $a in ("appearance", "objectification")
for $sex in ("female", "male")
for $t in doc ("MEN.xml")
return count($t/thread/comment[@gender=$sex]/$a)

Однако, это не вытягивает те счета, которые нам нужны.

Спасибо за вашу помощь:)

1 Ответ

0 голосов
/ 26 апреля 2018

Попробуйте:

let $t := fn:doc(“MEN.xml”)
return 
    for $a in (“appearance”, “objectification”)
    return
        for $sex in (“female”, “male”)
        return
           fn:count($t/thread/comment[@gender = $sex]/*[fn:local-name(.) = $a])
...