从 XML 生成包含不同数据、各自计数和总和的 XSLT

问题描述 投票:0回答:1

以下 XML 是我需要帮助为此创建 XLST 文件的项目示例:

     <Information>
      <Healthcare id="HCE6E18AE84E1459C86FC2B325D1DED4E">  
        <Name>Apollo</Name>
        <Price>1000</Price>
      </Healthcare>
      <Healthcare id="HEE31A8489A2A4114AEC9E6E1BAAD9254">
        <Name>Apollo</Name>
        <Price>1500</Price>
      </Healthcare>
      <Healthcare id="H49C5C6E471F04141B3A363EBC189C572">
        <Name>MAX</Name>
        <Price>3200</Price>
      </Healthcare>
      <Healthcare id="HE0B65576216F40CAA2AD3E3C18D6F2B0">
        <Name>Artemis</Name>
        <Price>1200</Price>
      </Healthcare>
      <Healthcare id="H4F888B5234534C05B2C8ADE391B5B2F3">
        <Name>Fortis</Name>
        <Price>1650</Price>
      </Healthcare>
      <Healthcare id="HE450A3325A7A4B6B9DB289F545E6D460">
        <Name>Fortis</Name>
        <Price>4500</Price>
      </Healthcare>
      <Healthcare id="H67DC7579ACC74E609D5E552F6BB70153">
        <Name>Narayana</Name>
        <Price>2200</Price>
      </Healthcare>
    </Information>

我希望 XLST 的输出如下表所示:

姓名 总价
阿波罗 2 2500
最大 1 3200
阿尔忒弥斯 1 1200
富通 2 6150
纳拉亚那 1 2200
xml xslt
1个回答
0
投票

在 XSLT 3.0 中,解决方案的本质是

<xsl:for-each-group select="Healthcare" group-by="Name">
  <tr>
    <td>{current-grouping-key()}</td>
    <td>{count(current-group())}</td>
    <td>{sum(current-group()/Price)}</td>
  </tr>
</xsl:for-each-group>
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.