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

如何使用FreeMarker函数移除第三方接口返回数据中的XML标签?

解决FreeMarker中移除XML标签的方法

嘿,这个问题我熟!要在FreeMarker里移除这些XML标签,其实用正则配合内置的replace函数就能轻松搞定,不用额外引入其他工具。

直接使用replace函数

FreeMarker的replace函数支持正则匹配模式,我们可以用正则表达式匹配所有XML标签,然后替换为空字符串。具体写法如下:

<!-- 假设你的原始数据存在变量rawContent中 -->
${rawContent?replace("<[^>]+>", "", "r")}
  • 正则表达式<[^>]+>:会匹配任何以<开头、>结尾的XML/HTML标签,不管标签里的属性内容是什么,都能精准匹配。
  • 第三个参数"r":告诉FreeMarker这是正则模式匹配,否则只会做普通字符串替换。

用你的示例数据测试的话,替换后会得到纯文本:welcome to first program Example ...

自定义宏复用(如果需要多次使用)

如果你的模板里需要多次处理这类内容,可以封装成一个宏,方便复用:

<#macro stripXmlTags text>
    ${text?replace("<[^>]+>", "", "r")}
</#macro>

<!-- 使用宏的方式 -->
<@stripXmlTags text=rawContent />

这样每次需要移除标签时,直接调用这个宏就可以了,代码更整洁。

注意事项

这个正则表达式能覆盖绝大多数标准XML标签的场景,但如果你的数据里存在不规范的标签(比如没有闭合的<或者>),可能需要调整正则,但从你给出的示例来看,这个写法完全够用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:58:28