【发布时间】:2017-03-07 14:27:36
【问题描述】:
我对 XSLT 还很陌生,遇到了一个当前问题。我已经在整个 Stackflow 中进行了一些搜索(似乎 Muenchian 方法是常见的组方法),但我似乎无法模仿一些已发布的想法。
所以我正在使用一个行项目读取系统,我试图在 XSLT 中编写代码来读取每一行以检查供应商 ID 是否相同,如果为真,它将聚合到一行中,然后合计金额。如果不是真的,它应该用 ID 开始一个新行并总结金额等等。我正在使用 xml version='1.0'
以下是我当前的 XML 数据文件:
<data>
<row>
<column1>06-11111</column1>
<column2>CP</column2>
<column3>744.04</column3>
<column4>CAD</column4>
</row>
<row>
<column1>06-11111</column1>
<column2>CP</column2>
<column3>105.09</column3>
<column4>CAD</column4>
</row>
<row>
<column1>06-11111</column1>
<column2>CP</column2>
<column3>1366.24</column3>
<column4>CAD</column4>
</row>
<row>
<column1>06-11111</column1>
<column2>CP</column2>
<column3>485.71</column3>
<column4>CAD</column4>
</row>
<row>
<column1>06-11112</column1>
<column2>Ever</column2>
<column3>459.60</column3>
<column4>CAD</column4>
</row>
<row>
<column1>06-11112</column1>
<column2>Ever</column2>
<column3>409.14</column3>
<column4>CAD</column4>
</row>
<row>
<column1>06-11112</column1>
<column2>Ever</column2>
<column3>397.12</column3>
<column4>CAD</column4>
</row>
<row>
<column1>06-11113</column1>
<column2>GE</column2>
<column3>1425</column3>
<column4>CAD</column4>
</row>
<row>
<column1>06-11114</column1>
<column2>Husky</column2>
<column3>-215.14</column3>
<column4>USD</column4>
</row>
<row>
<column1>06-11114</column1>
<column2>Husky</column2>
<column3>2015</column3>
<column4>USD</column4>
</row>
<row>
<column1>06-11114</column1>
<column2>Husky</column2>
<column3>11195.34</column3>
<column4>USD</column4>
</row>
</data>
我想在运行 XSLT 后实现的输出是
06-11111 | CP |2701.08
06-11112 |曾经 |1265.86
06-11113 |通用电气 |1425
06-11114 |哈士奇 |12995.20
任何帮助我入门都会很棒!
【问题讨论】:
-
如果您的输入是 XML,那么请将其显示为 XML。对于 XSLT 1.0 中的分组,从这里开始:jenitennison.com/xslt/grouping/muenchian.html
-
感谢 michael.hor257k 的回复!编辑我的问题以提供 XML 格式
-
答案在我之前引用的那篇文章中。在 SO 上发布的许多 Muenchian 分组示例中。
标签: sum xslt-1.0 grouping xslt-grouping