如何在逻辑应用程序中使用 XML_Transform 替换 java xml header 内容?

How to replace java xml header content using XML_Transform in logic app?

我有一个带有 Transform_XML 的简单逻辑应用程序,其中我将输入作为 java xml 数据。

我想从该输入 java xml 中替换下面的字符串。

'<?xml version=\"1.0\" encoding=\"utf-16\"?>'
to
'<?xml version=\"1.0\" encoding=\"utf-8\"?>

我尝试在代码视图中使用以下内容,但没有任何线索?

 "Transform_XML": {
                "inputs": {
                                       "content": "@{xml(replace(string(triggerBody()),'<?xml version=\"1.0\" encoding=\"utf-16\"?>','<?xml version=\"1.0\" encoding=\"utf-8\"?>'))}",

                    "integrationAccount": {
                        "map": {
                            "name": "mytestmap"
                        }
                    }
                },
                "runAfter": {},
                "type": "Xslt"
            }

但在 Xml Validation 处出现错误 -

InvalidXml. The provided content must be of XML content type.

replace() 看起来是正确的,但此时您可能不需要使用 xml()。

如果来自触发器的内容以 base64 格式传入,您可能需要先执行 base64ToString(),因为 replace() 可能会尝试对 base64 内容执行操作反而。一些 Action 可以正确处理此问题,而另一些则不能。

replace(base64ToString(triggerBody()),'',''))}"

但是...像这样更改 header 时要非常小心,因为现在您有义务将其作为完整的 UTF 发送给任何下游客户端。