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

使用<xsl:copy-of select="node()"/>无法复制节点及其子节点问题咨询

问题核心原因

  • 你定义了两个匹配根节点/的模板,XSLT处理器只会调用最后一个,但该模板的apply-templates选择逻辑没有主动触发Charges相关节点的处理
  • 你已实现的Inmate_Data转换模板没有主动调用Charges_Data的匹配模板,导致Charges节点被遗漏
  • 根节点模板中多余的<xsl:copy>会保留原根节点结构,和你期望的输出结构不符

修复方案

  1. 删除重复的根节点匹配模板,统一根节点处理逻辑
  2. 明确指定同时处理Inmate_Data和Charges_Data两个节点,避免遗漏
  3. 直接主动拉取所有charge节点原样复制,不需要额外写Charges_Data的匹配模板,降低模板触发逻辑出错概率

修正后完整XSLT代码

<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

      <!-- 唯一根节点处理模板 -->
      <xsl:template match="/">
         <booking>
            <inmateData>
               <!-- 调用你已经写好的Inmate_Data字段转换逻辑 -->
               <xsl:apply-templates select="Active_Booking_Release_Report/Inmate_Data/*"/>
               <!-- 直接原样复制所有charge节点到目标位置 -->
               <xsl:copy-of select="Active_Booking_Release_Report/Charges_Data/charge"/>
            </inmateData>
         </booking>
      </xsl:template>

      <!-- 这里保留你原来写的所有Inmate_Data字段转换的模板即可 -->

</xsl:stylesheet>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:06:04