XSLT中如何将相同日期统计为1天
XSLT 实现重复日期节点去重统计
前置说明
需先在XSLT根节点正确声明wd前缀对应的命名空间,示例声明格式:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:wd="替换为实际wd命名空间URI">
方案1:XSLT 2.0/3.0 版本(推荐,代码最简)
直接使用内置函数distinct-values()完成去重后统计,代码如下:
<!-- 统计去重后的日期数量 --> <xsl:value-of select="count(distinct-values(//wd:Date))" />
对示例输入的两个相同2021-08-18节点,上述代码返回结果为1,符合需求。
方案2:XSLT 1.0 版本(兼容旧版XSLT处理器)
1.0版本无内置去重函数,使用Muenchian分组法实现去重统计:
- 先定义日期分组的key
<xsl:key name="dateGroup" match="wd:Date" use="text()" />
- 统计分组数量即为去重后的日期数
<xsl:value-of select="count(//wd:Date[generate-id() = generate-id(key('dateGroup', text())[1])])" />
内容的提问来源于stack exchange,提问作者vishal kulkarni
相关产品推荐
相关产品推荐

