是否有等效于XML数据的ParseJson操作?

时间:2019-07-13 13:32:18

标签: xml azure-logic-apps

在Logic Apps中,我们执行ParseJson操作,该操作提供了各个字段。

但是解析XML的等效方法呢?

例如,如果我有一个XML over HTTP Web服务,该服务接收到XML正文...

<root>
  <person>
    <firstname>Paul</firstname>
    <lastname>Getty</lastname>
  </person>
  <person>
    <firstname>John</firstname>
    <lastname>Denver</lastname>
  </person>
</root>

我如何获得与ParseJson操作为每个XML元素(和属性)生成令牌的类似体验?

2 个答案:

答案 0 :(得分:2)

json(XML(Body('WhateverYouAreParsing')))。我的意思是,您始终可以将XML转换为JSON并将其作为JSON使用。我想如果您确实需要使用XML进行回复,则可以使用XML()将其重铸为XML,但这可能需要做一些额外的工作。或将Transform XML与集成帐户和地图一起使用。

也可以使用azure函数进行解析。

答案 1 :(得分:0)

您不能直接这样做。

我正在做的是我通过XML间接解析它-就像@AdAstra提到的那样。

  1. 为XML生成json模式-您可以使用任何在线转换器,例如https://codebeautify.org/xmltojson

    对于您的XML,Json如下所示:

{
   "root": {
      "person": 
      [
         {
            "firstname": "Paul",
            "lastname": "Getty"
         },
         {
            "firstname": "John",
            "lastname": "Denver"
         }
      ]
   }
}

  1. 使用具有TriggerBody作为内容的解析JSON控件,并将生成的模式粘贴到“使用示例有效负载生成模式”中-(这将为您生成Json模式)

    Parse Json component

  2. 输入Expression以将XML解析为Json(使用Parse Json Component中的Content字段-> Expression-> json(xml(triggerBody()))

    Parse JSON Expression

  3. 现在,您可以在Logic App设计器中将您的结构用作动态对象:

    Available dynamic content