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

如何使用XSLT根据属性值重命名XML元素?

XSLT实现将PARTY_ID元素重命名为其type属性值

下面是满足需求的XSLT代码,它会把所有<PARTY_ID>元素替换为以其type属性值命名的新元素,同时保留其他所有节点不变:

<?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>

    <!-- 专门匹配PARTY_ID元素,重命名为type属性的值 -->
    <xsl:template match="PARTY_ID">
        <!-- 用type属性值作为新元素的名称 -->
        <xsl:element name="{@type}">
            <!-- 复制PARTY_ID的所有子节点(这里是文本内容) -->
            <xsl:apply-templates select="node()"/>
        </xsl:element>
    </xsl:template>
</xsl:stylesheet>

代码说明:

  • 身份模板:这是XSLT中最基础的模板,作用是原样复制输入XML中的所有节点、属性和文本内容,保证除了需要修改的<PARTY_ID>之外,其他元素都保持不变。
  • PARTY_ID匹配模板:专门匹配<PARTY_ID>元素,使用<xsl:element>动态创建新元素,元素名称通过{@type}获取原元素的type属性值,然后复制原元素的子内容(这里是文本节点)到新元素中。

输入示例:

<PARTY>
          <PARTY_ID type="buyer_specific">XXXXXX</PARTY_ID>
          <PARTY_ID type="gln">YYYYYYYYYYYY</PARTY_ID>
          <PARTY_ROLE>buyer</PARTY_ROLE>
</PARTY>

输出结果:

<PARTY>
          <buyer_specific>XXXXXX</buyer_specific>
          <gln>YYYYYYYYYYYY</gln>
          <PARTY_ROLE>buyer</PARTY_ROLE>
</PARTY>

内容的提问来源于stack exchange,提问作者Jesper Bloch-Hansen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 08:04:42