我先说我是 XQuery 的新手。话虽如此,我正在从事一个使用 XML 来构造文本的项目。所以我的文档看起来像这样:
<text>
<paragraph>
<sentence id="1"> This, is a sentence.</sentence>
<sentence id="2"> This, is, a sentence.</sentence>
<sentence id="3"> This, is, a, sentence.</sentence>
<sentence id="4"> This is a sentence.</sentence>
</paragraph>
</text>
我需要计算每个句子的逗号数以进行下游语言分析。我试过这样做:
let $comma := ","
for $arg in doc("document.xml")/text/paragraph/sentence
return count($arg//$comma)
我使用的是 Oxygen 14.0,XQuery 编辑器没有给我任何语法错误消息。当我运行它时,我得到一个结果,但显然是错误的:
2 2 2 2
我将返回行修改为此(因为我不明白 // 和 / 之间的区别并想尝试一些东西):
return count ($arg/$comma)
现在结果是:
1 1 1 1
显然,这两个结果都是错误的。有许多不同的句子,带有不同数量的逗号。我不明白为什么它会给出这些结果。请帮忙?