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

如何使用DataWeave读取XML字段值中的空格字符

解决DataWeave读取XML中空格字段被识别为null的问题

当XML字段值为单个空格时,DataWeave默认会将其解析为null,导致针对空格的判断逻辑失效。以下是具体场景及解决方法:

原始场景

XML输入

<employee>
 <id>123</id>
 <name> </name>
</employee>

原始DataWeave脚本

%dw 2.0
output application/xml
---
"root" : {
  "id" : payload.employee.id, 
  "name" : if (payload.employee.name == " ") "space" else payload.employee.name 
}

当前错误输出

<?xml version='1.0' encoding='UTF-8'?>
<root>
  <id>123</id>
  <name/>
</root>

解决方案

问题根源是DataWeave默认XML解析策略会忽略空白文本节点,只需在输入配置中添加skipNullOn="none"即可保留所有空白字符:

修改后的DataWeave脚本

%dw 2.0
input application/xml skipNullOn="none"
output application/xml
---
"root" : {
  "id" : payload.employee.id, 
  "name" : if (payload.employee.name == " ") "space" else payload.employee.name 
}

修改后的正确输出

<?xml version='1.0' encoding='UTF-8'?>
<root>
  <id>123</id>
  <name>space</name>
</root>

skipNullOn="none"会强制XML解析器保留所有文本节点(包括单个空格),此时payload.employee.name能正确获取到空格字符,判断逻辑即可正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 09:10:56