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

XSLT中xsl:value-of未处理换行符与回车符的问题

无需修改现有XSL代码实现换行的解决方案

最直接且不用改动XSL代码的办法是通过CSS样式来处理文本换行——毕竟你的问题核心是浏览器默认会忽略文本里的换行符,把所有内容挤成一段。

给你现有的.reportFieldData类添加以下CSS规则:

.reportFieldData {
  white-space: pre-line;
}

为什么这个方法能解决问题?

white-space: pre-line的特性完美匹配你的需求:

  • 它会识别文本中的所有换行符(\r\n、\n、\r),并将其转换为浏览器能识别的换行显示
  • 自动合并连续的空白字符(比如多个空格),同时保留段落之间的空行
  • 文本会自适应容器宽度自动换行,不会像pre属性那样强制内容不换行

你之前替换方法失效的原因

当你尝试把换行符替换成<br/>或&#10;时,由于使用的是<xsl:value-of>,它默认会对输出的HTML标签进行转义,导致<br/>被显示成&lt;br/&gt;而非实际的换行元素。如果要让替换生效,你需要改用<xsl:copy-of>并配合disable-output-escaping,但这就需要修改XSL代码,不符合你的要求。

备选方案(若CSS不可用)

如果因为环境限制无法添加CSS,还有一种间接思路:在生成XML数据源时提前把换行符替换为<br/>,然后在XSL中用<xsl:copy-of>替代<xsl:value-of>——但这需要修改数据源或XSL代码,不如CSS方案便捷。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 14:47:28