我需要帮助以 xml 格式使用 dataweave 输出“大于”和“小于”字符

问题描述

我有以下数据编织代码

%dw 2.0
output xml writeDeclaration=false
---
'a:b': '<'

当前输出

<a:b>&lt;</a:b>

但是我想要的输出

<a:b><</a:b>

是否有人有任何想法,感谢任何帮助!谢谢

解决方法

您不应该尝试这样做。输出为 XML,在 XML 规范中,单独的 < 字符必须编码为 &lt;Other characters 也被限制在 XML 文档中显示为文本。

话虽如此,如果元素在 CData 块中,您可以生成该文字字符。您可以通过将字符串强制转换为 CData 来创建 CData blockin DataWeave

示例:

%dw 2.0
output xml writeDeclaration=false
---
'a:b': '<' as CData

输出:

<a:b><![CDATA[<]]></a:b>
,

如果您只想输出字符串,解决方法是将“&lt”替换为“

脚本

%dw 2.0
output application/java
---
write('a:b': '<',"application/xml",{ "writeDeclaration": false}) 
     replace "&lt;" with "<"

输出:

<a:b><</a:b>