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

如何避免XmlSlurper将含空格的空节点转换为自闭合节点?

解决XmlSlurper序列化时丢失空白节点内容的问题

XmlSlurper默认会忽略仅包含空白的文本节点,这就是你原本的<node> </node>被转换成<node/>的原因。要保留原始格式,只需修改解析器配置,让它保留空白内容:

修改后的代码

// 配置XmlSlurper保留空白文本节点
XmlSlurper slurper = new XmlSlurper(false, false);
slurper.setPreserveWhitespace(true);

def xml = slurper.parseText(testxml);
def node = XmlUtil.serialize(xml.MessageRequest.LineSize[1]);
msg.put("node", node);

关键说明

  • 创建XmlSlurper时传入两个false,分别禁用命名空间支持和验证(无需时可这么设置),再调用setPreserveWhitespace(true)开启空白保留。
  • 调整后解析出的XML树会保留原节点中的空白内容,序列化时就能输出<node> </node>而非自闭合标签。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 21:17:01