如何使用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
相关产品推荐
相关产品推荐

