XSLT开发需求:按车辆类别分组承保代码并计算保费拆分
XSLT分组处理
需针对指定请求XML编写XSLT,完成以下操作:
- 按车辆类别(VehicleCategory)分组承保代码(CoverageCode);
- 汇总同一承保代码的总保费;
- 汇总同一承保代码+车辆类别的保费;
- 根据车辆序列号(VehicleSequenceNo)匹配车辆类别;
- 基于上述汇总值计算保费拆分比例。
输入XML
<Root> <Request> <Vehicles> <Vehicle> <VehicleSequenceNo>1</VehicleSequenceNo> <VehicleCategory>Tractor</VehicleCategory> </Vehicle> <Vehicle> <VehicleSequenceNo>2</VehicleSequenceNo> <VehicleCategory>Tractor</VehicleCategory> </Vehicle> <Vehicle> <VehicleSequenceNo>3</VehicleSequenceNo> <VehicleCategory>Trailer</VehicleCategory> </Vehicle> </Vehicles> <Policies> <Policy> <PrimaryAuto> <Liability> <Exposures> <Vehicle> <VehicleSequenceNo>1</VehicleSequenceNo> <CoverageProvided> <CoverageCode>L1</CoverageCode> <Premium>100</Premium> </CoverageProvided> </Vehicle> <Vehicle> <VehicleSequenceNo>2</VehicleSequenceNo> <CoverageProvided> <CoverageCode>L1</CoverageCode> <Premium>200</Premium> </CoverageProvided> </Vehicle> <Vehicle> <VehicleSequenceNo>3</VehicleSequenceNo> <CoverageProvided> <CoverageCode>L1</CoverageCode> <Premium>150</Premium> </CoverageProvided> <CoverageProvided> <CoverageCode>UI</CoverageCode> <Premium>140</Premium> </CoverageProvided> </Vehicle> </Exposures> </Liability> </PrimaryAuto> </Policy> </Policies> </Request> </Root>
预期输出XML
<PremiumSplit> <Liability> <Vehicle> <CoverageSection>Liability</CoverageSection> <CoverageCode>L1</CoverageCode> <!-- 100 + 200 + 150 = 450 (sum of all L1 code premium) , 100 + 200 = 300 (sum of Tractor L1 premium) , 450 / 300 = 1.5 --> <CoveragePercent>1.5</CoveragePercent> <VehicleCategory>Tractor</VehicleCategory> </Vehicle> <Vehicle> <CoverageSection>Liability</CoverageSection> <CoverageCode>L1</CoverageCode> <!-- 100 + 200 + 150 = 450 (sum of all L1 code premium) , 150 (Trailer L1 premium) , 450 / 150 = 3 --> <CoveragePercent>3</CoveragePercent> <VehicleCategory>Trailer</VehicleCategory> </Vehicle> <Vehicle> <CoverageSection>Liability</CoverageSection> <CoverageCode>UI</CoverageCode> <!-- 140 (Trailer UI premium) / 140 (Trailer UI premium) = 1 --> <CoveragePercent>1</CoveragePercent> <VehicleCategory>Trailer</VehicleCategory> </Vehicle> </Liability> </PremiumSplit>
当前问题
已尝试通过foreach遍历指定节点提取CoverageCode和VehicleSequenceNo,但仍需实现:
- 根据提取的VehicleSequenceNo匹配对应的VehicleCategory;
- 识别重复CoverageCode并完成保费汇总与拆分比例计算。
内容的提问来源于stack exchange,提问作者user1635003
相关产品推荐
相关产品推荐

