首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >XSLT/XPath来计算最常用的单词

XSLT/XPath来计算最常用的单词
EN

Stack Overflow用户
提问于 2013-11-04 23:37:28
回答 1查看 176关注 0票数 0

假设我有这样一个XML文档:

哈利·波特魔法石J·K·罗琳·哈利·波特密室J·K·罗琳·哈利·波特阿兹卡班·J·K的囚徒罗琳

我希望我的XSLT文档能够找到标题中最常用的三个单词,以及它们的数量。(所以我想输出:“哈利”:3,“波特”:3,"of":2)。

代码语言:javascript
运行
复制
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<h2>3 Most Commonly Used Words</h2>
<ul>
   <li>Word - Count</li>
</ul>
</xsl:template>
</xsl:stylesheet>

我是一个XML初学者,不清楚如何使用XSLT和XPath进行聚合。我想把tokenize()和sum()组合起来?有人能给我指明正确的方向吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-05 01:07:58

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:output indent="yes"/>
    <xsl:template match="/">
        <h2>3 Most Commonly Used Words</h2>
        <ul>
        <xsl:for-each-group group-by="." select="
            for $w in //title/tokenize(., '\W+') return $w">
            <xsl:sort select="count(current-group())" order="descending" />
            <xsl:if test="position() lt 4">
                <li>
                    <xsl:value-of select="current-grouping-key()"/>
                    <xsl:text> - </xsl:text>
                    <xsl:value-of select="count(current-group())"/>
                </li>
            </xsl:if>
        </xsl:for-each-group>
        </ul>
    </xsl:template>
</xsl:stylesheet>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19779386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档