【发布时间】:2020-11-10 05:01:21
【问题描述】:
我正在进行转换,我想通过新站点值添加值。仓库 150 和仓库 120 变成美国站点,而欧盟站点只有仓库 405。我该怎么做?
输入:
<Recordname>
<fld1>product1</fld1>
<fld2>warehouse150</fld2>
<fld3>13</fld3>
</Recordname>
<Recordname>
<fld1>product1</fld1>
<fld2>warehouse120</fld2>
<fld3>12</fld3>
</Recordname>
<Recordname>
<fld1>product1</fld1>
<fld2>warehouse405</fld2>
<fld3>22</fld3>
</Recordname>
<Recordname>
<fld1>product1</fld1>
<fld2>warehouse405</fld2>
<fld3>2</fld3>
</Recordname>
<Recordname>
<fld1>product2</fld1>
<fld2>warehouse150</fld2>
<fld3>7</fld3>
</Recordname>
<Recordname>
<fld1>product2</fld1>
<fld2>warehouse405</fld2>
<fld3>6</fld3>
</Recordname>
输出:
<Recordname>
<fld1>product1</fld1>
<site>US</site>
<fld3>25</fld3>
</Recordname>
<Recordname>
<fld1>product1</fld1>
<site>EU</site>
<fld3>24</fld3>
</Recordname>
<Recordname>
<fld1>product2</fld1>
<site>US</site>
<fld3>7</fld3>
</Recordname>
<Recordname>
<fld1>product2</fld1>
<site>EU</site>
<fld3>6</fld3>
</Recordname>
期待您的回答,因为我是 stylesheet 的新手。
【问题讨论】:
-
到目前为止你尝试了什么?
-
我确实尝试了两步 xslt,因为我不知道如何一步完成。第一个 xslt 将仅将 fld2 替换为 site warehouse150 或仓库 120 变为 US,而 warehouse405 变为 EU,然后第二个 xslt 将仅按站点和产品求和。我希望将它放在一个 xslt 中。
-
这主要是一个分组问题(或者至少看起来是这样)。 XSLT 1.0 或 2.0 的分组方法不同。您将使用哪种处理器?
-
对。我将使用 XSLT 2.0,但我的中间件也可以处理 1.0。如果在 2.0 中更容易,那么我宁愿这样做
-
这里有一个 group 和 sum 的例子:stackoverflow.com/questions/2768712/…。如果示例不清楚,您可以编辑您的问题吗?它应该转化为您的输入
标签: xslt