<root>
<Entry>
<ID>1</ID>
<Details>
<Code>A1</Code>
<Value>1000</Value>
</Details>
<Details>
<Code>A2</Code>
<Value>2000</Value>
</Details>
</Entry>
<Entry>
<ID>2</ID>
<Details>
<Code>B1</Code>
<Value>1500</Value>
</Details>
<Details>
<Code>B2</Code>
<Value>2500</Value>
</Details>
<Details>
<Code>A3</Code>
<Value>3000</Value>
</Details>
</Entry>
</root>
我有这个输入 XML。对于每个<Entry>
,我希望对<Details>
节点(它们是 Entry 的子节点)进行分组,并最终<Value>
通过以下代码分组来获取节点值的总和,如下所示:
- 代码 A1、A2 和 A3 应组合在一起(例如“A”)
- 代码 B1、B2 和 B3 应组合在一起(例如“B”)
[注意:代码只是示例,实际代码完全不同,因此子字符串解决方案不起作用,请不要从字面上考虑这些代码]
输出看起来像:
<Output>
<Output-Line>
<ID> 1 </ID>
<Code-group> A </Code-group>
<Sum> 3000 </Sum>
<Code-group> B </Code-group>
<Sum/>
</Output-Line>
<Output-Line>
<ID> 2 </ID>
<Code-group> A </Code-group>
<Sum> 3000 </Sum>
<Code-group> B </Code-group>
<Sum> 4000 </Sum>
</Output-Line>
</Output>
我目前面临的问题是该<xsl:key>
元素应该在顶部声明,而不是在 for-each 循环中的单个条目级别。因此,我无法使用匹配和使用表达式参数形成正确的键。任何帮助表示赞赏。
提前致谢!