You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用XSLT实现XML欧元转PLN并修复结构缺失问题

修正后的XSLT模板解决方案

你的XSLT代码主要存在两个核心问题,同时我们还可以优化价格的小数格式来匹配你给出的示例效果,以下是完整的修正方案:

问题定位

  • 输出结果缺失原XML的根元素<Items>,导致生成的XML结构不完整
  • 汇率标签错误地改为了<rate>,不符合目标结构要求的<rate_currency_change>
  • 直接相乘后的价格会出现多位小数,需要格式化保留两位小数以匹配示例结果

修正后的完整XSLT代码

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <!-- 匹配根节点,保留<Items>根元素 -->
    <xsl:template match="/">
        <Items>
            <!-- 遍历每个item节点 -->
            <xsl:for-each select="Items/item">
                <item>
                    <!-- 计算价格并格式化为两位小数 -->
                    <price>
                        <xsl:value-of select="format-number(./price * ./rate_currency_change, '0.00')"/>
                    </price>
                    <!-- 计算推荐价格并格式化为两位小数 -->
                    <recommended_price>
                        <xsl:value-of select="format-number(./recommended_price * ./rate_currency_change, '0.00')"/>
                    </recommended_price>
                    <!-- 保留原汇率标签名 -->
                    <rate_currency_change>
                        <xsl:value-of select="./rate_currency_change"/>
                    </rate_currency_change>
                </item>
            </xsl:for-each>
        </Items>
    </xsl:template>
</xsl:stylesheet>

关键修改说明

  1. 恢复根元素结构:在根模板中添加了<Items>标签包裹所有<item>节点,确保输出XML的层级和原Feed一致
  2. 修正汇率标签名:将错误的<rate>改回目标要求的<rate_currency_change>
  3. 格式化小数位数:使用format-number()函数将计算后的价格统一格式为两位小数,和你给出的示例结果完全对齐(注:37.9900004.37实际为166.0163,格式化后会四舍五入为166.02;111.504.37=487.255,格式化后为487.26,若需要截断而非四舍五入,可以调整格式化规则)

输出结果示例

用该模板处理你的原XML Feed后,会生成符合要求的结构:

<Items>
    <item>
        <price>166.02</price>
        <recommended_price>487.26</recommended_price>
        <rate_currency_change>4.37</rate_currency_change>
    </item>
</Items>

内容的提问来源于stack exchange,提问作者TOM ARM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:35:53