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

如何使用XSLT1.0为XML的每个Member节点添加JoinMember父节点?

XSLT 1.0 实现单个Member节点包裹为JoinMember

没问题,这是个很常见的XML结构转换需求,咱们直接用XSLT 1.0就能轻松实现。

首先先确认你的输入XML:

<Members>
  <Member name="1" />
  <Member name="2" />
  <Member name="3" />
  <Member name="4" />
  <Member name="5" />
</Members>

你的需求是给每一个<Member>节点外层套上<JoinMember>容器,同时保留根节点<Members>不变。对应的XSLT 1.0样式表如下:

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

  <!-- 专门匹配Member节点的模板,包裹为JoinMember -->
  <xsl:template match="Member">
    <JoinMember>
      <xsl:copy-of select="."/>
    </JoinMember>
  </xsl:template>
</xsl:stylesheet>

代码解释:

  • 第一个模板是身份转换模板,它会默认复制所有的节点、属性和文本内容,保证除了我们专门处理的<Member>节点外,其他结构都原样保留。
  • 第二个模板专门匹配<Member>节点,我们在这里创建一个新的<JoinMember>节点,然后用<xsl:copy-of select="."/>把原有的<Member>节点完整复制进去。

运行这个样式表后,你就能得到期望的输出XML:

<Members>
  <JoinMember>
    <Member name="1" />
  </JoinMember>
  <JoinMember>
    <Member name="2" />
  </JoinMember>
  <JoinMember>
    <Member name="3" />
  </JoinMember>
  <JoinMember>
    <Member name="4" />
  </JoinMember>
  <JoinMember>
    <Member name="5" />
  </JoinMember>
</Members>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:21:55