首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xslt-3中的计数之和

xslt-3中的计数之和
EN

Stack Overflow用户
提问于 2018-05-14 13:45:02
回答 1查看 338关注 0票数 0

给出以下示例,

https://xsltfiddle.liberty-development.net/3NzcBsV

每个描述只能发生一次。如何在输出报告的第一行中添加在所讨论的xml文件中多次发生的描述元素的数量?

期望产出:

代码语言:javascript
复制
3 (because "Light Belgian waffles covered with an assortment of fresh berries and whipped cream" was found 2 times, and "Two of our famous Belgian Waffles with plenty of real maple [syrup]" was found 3 times, thus 1+2=3 )
02  Light Belgian waffles covered with an assortment of fresh berries and whipped cream 900
04  Light Belgian waffles covered with an assortment of fresh berries and whipped cream 100
01  Two of our famous Belgian Waffles with plenty of real maple [syrup] 650
01  Two of our famous Belgian Waffles with plenty of real maple [syrup] 350
05  Two of our famous Belgian Waffles with plenty of real maple [syrup] 250
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-15 21:38:08

将分组元素存储到容器元素中,并计数不同组的项(或根据您的需要从该计数中减去一个):

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="3.0">

  <xsl:output method="text" />

  <xsl:template match="breakfast_menu">
      <xsl:variable name="groups">
          <xsl:for-each-group select="food" group-by="description">
              <xsl:sort select="current-grouping-key()"/>
              <xsl:if test="current-group()[2]">
                  <group key="{current-grouping-key()}">
                      <xsl:copy-of select="current-group()"/>
                  </group>
              </xsl:if>
          </xsl:for-each-group>          
      </xsl:variable>
      <xsl:value-of select="sum($groups/group!(count(food) - 1))"/>
      <xsl:text>&#10;</xsl:text>
      <xsl:apply-templates select="$groups/group/food"/>
  </xsl:template>

  <xsl:template match="food">
      <xsl:value-of select="name, description, string(calories)" separator="&#9;"/>
      <xsl:text>&#10;</xsl:text>
  </xsl:template>

</xsl:stylesheet>

https://xsltfiddle.liberty-development.net/3NzcBsV/4

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50331888

复制
相关文章

相似问题

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