在逻辑应用程序中执行xml替换操作

时间:2019-05-20 17:11:40

标签: azure-logic-apps

如何在逻辑应用程序中替换XML有效负载中的字符串?

输入

<root>
  <alexIsAwesome>yes he is</alexIsAwesome>
  <bytes>sdfsdfjijOIJOISJDFQPWORPJkjsdlfkjlksdf==</bytes>
  <bytes>SFSDFsdfsdgfjgjkfjsdlfkjlksdf==</bytes>
</root>

所需结果

<root>
  <alexIsAwesome>yes he is</alexIsAwesome>
  <bytes>replacetext1</bytes>
  <bytes>replacetext2</bytes>
</root>

我们如何遍历XML并替换节点内的文本?请记住,输入节点的大小可能为100mb!

2 个答案:

答案 0 :(得分:3)

如果您已经在Logic App中加载了XML内容,则可以只使用replace函数。请注意,某些limits可能会导致您连续运行。

如果您有更复杂的用例,则可以尝试以下方法之一

对于高达50MB的有效负载 ,您只需使用新的inline code feature即可执行所需的转换。您必须先将有效负载转换为JSON(使用json),然后再转换为XML(使用xml)。

但是对于更大的有效负载和/或更复杂的转换 ,最好将其卸载到Function called from Logic App

这里最好的方法是将有效负载存储在Azure Blob存储中,并且您的函数将具有Blob InputBlob Output绑定。

答案 1 :(得分:3)

您可以通过指向已定义的Map(XSLT或Liquid类型)来将Integration帐户与Transform XML操作一起使用。 logic apps enterprise integration maps