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

时间:2018-02-22 20:55:34

标签: xml azure azure-logic-apps

我有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。提供的内容必须是XML内容类型。

1 个答案:

答案 0 :(得分:1)

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

如果来自Trigger的内容以base64身份进入,您可能需要先执行 base64ToString(),因为replace()可能会尝试对base64内容执行操作。有些操作可以正确处理,有些则不能。

替换(base64ToString(triggerBody()), '', ''))}“

但是......要非常小心地改变这样的标题,因为现在你有义务将它作为完整的UTF发送给任何下游客户。