我需要帮助以 xml 格式使用 dataweave 输出 'greater than' 和 'less than' 字符

I need help outputting 'greater than' and 'less than' characters using dataweave in xml format

我有以下数据编织代码

%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>

如果您只想输出字符串,解决方法是将“<”替换为“<”。如果您不想使用 CDATA

,这只是一种解决方法

脚本

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

输出:

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