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

使用XSLT实现XML标签转换:将Exercise1映射为firstExercise等

XSLT实现XML标签重映射与内容清除

直接上能满足需求的XSLT代码:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <!-- 身份模板:默认拷贝所有节点,特殊节点单独处理 -->
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <!-- 清空所有文本节点,只保留标签结构 -->
    <xsl:template match="text()">
        <xsl:text></xsl:text>
    </xsl:template>

    <!-- 处理ExerciseN标签的重命名映射 -->
    <xsl:template match="*[starts-with(local-name(), 'Exercise')]">
        <xsl:variable name="num" select="substring-after(local-name(), 'Exercise')"/>
        <xsl:element name="{
            choose(
                $num = '1', 'firstExercise',
                $num = '2', 'secondExercise',
                $num = '3', 'thirdExercise',
                concat('exercise', $num) <!-- 更多编号的默认命名规则 -->
            )
        }">
            <xsl:apply-templates select="@*|node()"/>
        </xsl:element>
    </xsl:template>
</xsl:stylesheet>

核心逻辑说明:

  • 身份模板确保未指定特殊处理的标签结构原样保留
  • 文本节点模板直接输出空内容,彻底清除所有数值、空白文本内容
  • 针对ExerciseN标签,先提取编号数字,再通过choose映射到对应的序数命名;如果有更多编号(如Exercise4),默认采用exercise4格式,你可以自行补充choose里的映射规则

转换后的输出结果:

<?xml version="1.0" encoding="UTF-8"?>
<option>
    <firstExercise>
        <ExerciseTime>
            <hourMinuteTime></hourMinuteTime>
        </ExerciseTime>
    </firstExercise>
    <secondExercise>
        <ExerciseTime>
            <hourMinuteTime></hourMinuteTime>
        </ExerciseTime>
    </secondExercise>
    <thirdExercise>
        <ExerciseTime>
            <hourMinuteTime></hourMinuteTime>
        </ExerciseTime>
    </thirdExercise>
</option>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 08:30:47