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

xsl:value-of提取CRETIM字段值异常,输出后半段异常求助

问题分析与解决

问题原因

从你提供的代码来看,异常的核心原因在于XSLT的<xsl:attribute>节点内部存在冗余内容:

  • 节点里除了提取CRETIM值的<xsl:value-of>语句,还包含大量多余的换行、空格,以及一个额外的小写字母a
  • 这些无关内容会被XSLT引擎一并输出到timestamp属性的值中,导致原本正常的112159后面被拼接了无效字符,出现输出异常
  • 另外disable-output-escaping="yes"属于无效配置,CRETIM的值是纯数字,不存在需要保留的转义字符,这个设置对结果没有帮助,反而可能引入潜在问题

解决方法

1. 清理属性节点内的冗余内容

将<xsl:attribute>内部的空白、换行和多余的a全部删除,整理为干净的代码:

<xsl:attribute name="timestamp">
    <xsl:value-of select="EDI_DC40/CRETIM"/>
</xsl:attribute>

如果要严格避免空白干扰,还可以简化为一行:

<xsl:attribute name="timestamp"><xsl:value-of select="EDI_DC40/CRETIM"/></xsl:attribute>

2. 移除无用的disable-output-escaping属性

直接删除disable-output-escaping="yes",因为纯数字场景下完全不需要禁用转义,移除后不会影响正常取值,还能减少无效配置。

补充优化(XSLT 2.0+适用)

如果你的环境支持XSLT 2.0及以上版本,可以用更简洁的属性值模板替代<xsl:attribute>写法,自动规避空白问题:

<your-target-element timestamp="{EDI_DC40/CRETIM}">
    <!-- 元素其他内容 -->
</your-target-element>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:40:25