我们有一个非常相似的XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<nodeOne>
<nodeTwo>
<nodeThree>
foo bar zoo
</nodeThree>
</nodeTwo>
</nodeOne>
<nodeOne>
<nodeTwo>
<nodeThree>
foo bar
</nodeThree>
</nodeTwo>
</nodeOne>
<nodeOne>
<nodeTwo>
<nodeThree>
zoo bar
</nodeThree>
</nodeTwo>
</nodeOne>
我想要实现的是计算 nodeThree
内每个单词的出现次数(由空格分隔) . 考虑到上面的例子,输出将是这样的:
foo 2
bar 3
zoo 2
我试图获取每个 text()
的 nodeThree
,并试图将它变成字符串序列 . 然后,我想,我可能能够加入他们和团队,然后计算,但我无法这样做 . 到目前为止尝试了很多东西 .
1 回答
首先请注意,除非您创建一个根节点来包装它,否则您的XML格式不正确(即它不是真正的XML) .
如果性能是一个问题,这个问题更适合利用带有频率数据的单词索引,就像在XML数据库中一样 . 在纯XQuery中解决这个问题对于大型XML来说可能要慢得多,但解决了这个问题: