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

XSLT转换XML文件时如何将三字母颜色缩写替换为完整名称

实现方案

你可以通过在匹配tow的模板中添加xsl:choose条件判断,实现三字母颜色缩写到完整名称的映射,仅需要修改匹配tow节点的模板部分即可,无需调整其他现有逻辑。

修改后完整XSL代码

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
    <xsl:template match="/">
        <xsl:element name="summary">
            <state name="Arizona">
                <xsl:apply-templates select="response/tow[state = 'AZ']">
                    <xsl:sort select="tow_date" order="ascending" />
                </xsl:apply-templates>
            </state>
            <state name="Florida">
                <xsl:apply-templates select="response/tow[state = 'FL']">
                    <xsl:sort select="tow_date" order="ascending" />
                </xsl:apply-templates>
            </state>
            <state name="New York">
                <xsl:apply-templates select="response/tow[state = 'NY']">
                    <xsl:sort select="tow_date" order="ascending" />
                </xsl:apply-templates>
            </state>
        </xsl:element>
    </xsl:template>
    <xsl:template match="tow" >
        <!-- 颜色缩写映射逻辑 -->
        <xsl:variable name="colorFullName">
            <xsl:choose>
                <xsl:when test="color = 'WHI'">WHITE</xsl:when>
                <xsl:when test="color = 'GRY'">GRAY</xsl:when>
                <xsl:when test="color = 'BLK'">BLACK</xsl:when>
                <!-- 未匹配到的颜色保留原缩写,可根据需求调整 -->
                <xsl:otherwise><xsl:value-of select="color"/></xsl:otherwise>
            </xsl:choose>
        </xsl:variable>
        <vehicle date="{tow_date}" plate="{plate}" color="{$colorFullName}" />
    </xsl:template>
</xsl:stylesheet>

转换后输出结果

<?xml version="1.0" encoding="UTF-8"?>
<summary>
    <state name="Arizona">
        <vehicle date="2021-10-10" plate="549XIB" color="WHITE"/>
    </state>
    <state name="Florida">
        <vehicle date="2021-10-24" plate="LDNE06" color="GRAY"/>
    </state>
    <state name="New York">
        <vehicle date="2021-11-06" plate="HDU4518" color="BLACK"/>
    </state>
</summary>

后续需要新增颜色映射规则时,直接在xsl:choose块中添加对应xsl:when条目即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 03:36:03