我正在处理 XML 文档(这是带有嵌套文本和元素的 HTML)。
使用以下脚本,Dataweave Playground 和 VScode 扩展输出文本/元素的正确顺序:
%dw 2.0
output application/json skipNullOn="everywhere"
var xmlString="<root>sometext0<element1>1</element1>sometext2</root>"
---
read(xmlString, 'application/xml')
产生正确的输出顺序:
{
"root": {
"__text": "sometext0",
"element1": "1",
"__text": "sometext2"
}
}
但是,Anypoint Studio(7.15,Mule 4.4.0)中完全相同的脚本会导致此输出与 _text 节点连接,从而导致丢失正确的顺序:
{
"root": {
"element1": "1",
"__text": "sometext0sometext2"
}
}
有谁知道如何让 Studio/Mule 运行时产生与 Playground/VSCode 相同的正确输出?
尝试在 studio、vscode 和 Playground 中运行。
Visual Code 的 DataWeave 2.0(BETA)扩展和 DataWeave Playground 可能不具有与实际 Mule Runtime 版本相同的 DataWeave 引擎。它们可能嵌入了不同版本的 DataWeave。规范行为就是 Mule 版本正在做的事情。
如果 Mule 版本不符合您的期望,并且您是客户,您可以向 MuleSoft 提出错误。