以下 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 |
在 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>