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

XSLT合并XML数据出现转义特殊字符问题咨询

问题原因排查与解决

核心原因:双重转义导致的字符异常

你看到的</p><p>这类内容,本质是双重转义问题:

  1. 输入XML中的绩效反馈内容已经是转义后的形式(比如原始<p>标签被转成了&lt;p&gt;)
  2. 你的XSLT在合并输出时,处理器默认会对文本中的特殊字符(如&)再次转义,于是原本的&lt;被二次转义为&amp;lt;,最终出现了这种异常格式。

另外还要确认你的合并方式:如果使用xsl:value-of直接输出分组内容,或者用concat()/string-join()拼接文本,XSLT处理器都会自动对特殊字符进行转义,加剧这个问题。


针对性解决办法(基于XSLT 2.0)

方法1:关闭输出转义(快速处理)

如果你的合并逻辑是用xsl:value-of输出,添加disable-output-escaping="yes"属性,阻止处理器对已转义的字符再次编码:

<PSQ2>
  <xsl:value-of select="your-grouped-feedback-content" disable-output-escaping="yes"/>
</PSQ2>

注:该属性的支持度依赖XSLT处理器,主流处理器(如Saxon)均支持,部分轻量处理器可能不兼容。

方法2:解析转义片段(更可靠)

利用XSLT 2.0的parse-xml-fragment函数,先将转义后的文本解析为XML/HTML节点,再输出内容:

<PSQ2>
  <xsl:copy-of select="parse-xml-fragment(your-grouped-feedback-content)"/>
</PSQ2>

如果只需要纯文本(不需要保留HTML标签),可以进一步提取文本内容:

<PSQ2>
  <xsl:value-of select="string(parse-xml-fragment(your-grouped-feedback-content))"/>
</PSQ2>

这个方法不仅能还原转义字符,还能确保内容的结构合法性,是XSLT 2.0下的最优方案。


额外检查项

  • 确认输入XML的原始内容:如果上游数据已经把HTML标签转义成了&lt;p&gt;,那问题根源在数据生成环节,也可以从源头修正输入格式。
  • 检查分组拼接逻辑:如果用string-join()合并多个反馈条目,先对每个条目做转义还原,再拼接,避免拼接后再处理导致的异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 11:42:45