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

使用XSLT value-of生成SOAP服务时如何转义XML特殊字符?

解决SOAP WebService中用户输入特殊字符的转义问题

核心结论

XSLT的<xsl:value-of>在输出XML元素内容时,会自动转义XML预定义特殊字符(&、<、>、"、'),无需手动处理。你遇到的&amp;amp;这类双重转义问题,大概率是额外手动转义导致的。

具体说明

  1. 默认转义行为
    当XSLT输出方法为xml(默认)或SOAP专用输出方法(soap1.1/soap1.2)时,<xsl:value-of>会自动将用户输入的特殊字符转换为对应的XML实体:

    • & → &amp;
    • < → &lt;
    • > → &gt;
    • " → &quot;
    • ' → &amp;apos;
  2. 避免双重转义
    不要手动用字符串替换函数(如replace())处理这些特殊字符,否则会出现双重转义(例如用户输入&,手动转成&amp;后,XSLT再转一次就变成&amp;amp;,这就是你示例中错误的来源)。

  3. 正确的XSL代码示例
    你原本的代码本身是正确的,只要确保输出方法符合XML/SOAP规范即可:

    <CreateTask>
       <taskDetails>comments$<xsl:value-of select="//dform:field[dform:name='comments']/dform:value" />#</taskDetails>
    </CreateTask>
    
  4. 换行符处理
    示例中的&#xD;是回车符的XML实体,用户输入的换行(\r/\n)会被XSLT保留为实体或原始字符,若需统一格式,可结合normalize-space()或<xsl:preserve-space>标签调整,具体取决于业务需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 15:52:24