如何在 WSO2 ESB 中获得响应 body

How can I get the response body in WSO2 ESB

WSO2 ESB中这样的响应格式:

<testresponse xmlns="http://abcd/service">
    <cookie>yummy</cookie>
    <product>YM11</product>
    <place>US</place>
</testresponse > 

但是我只想要body,我该怎么办?

 <cookie>yummy</cookie>
 <product>YM11</product>
 <place>US</place>

目标是将 xml 转换为 JSON object,如下所示

{
 "cookie": "yummy",
 "product": "YM11",
 "place": "US"
}

您可以使用 payloadFactory

<payloadFactory media-type="xml">
  <format>
    <jsonObject>
      <cookie></cookie>
      <product></product>
      <place></place>
    </jsonObject>
  </format>
  <args>
    <arg evaluator="xml" expression="//cookie"/>
    <arg evaluator="xml" expression="//product"/>
    <arg evaluator="xml" expression="//place"/>
  </args>
</payloadFactory>

但如前所述,您需要一个封闭元素,否则您的 xml 将根本无效。如果目标是输出 Json,则此元素应称为 jsonObject(在此处查找更多信息:https://docs.wso2.com/display/EI600/JSON+Support)。

如果您不需要 XML,最好的方法是直接构建您的 json 对象

<payloadFactory media-type="json">
  <format>
    {
      "cookie": ,
      "product": ,
      "place": 
    }
  </format>
  <args>
    <arg evaluator="xml" expression="//cookie"/>
    <arg evaluator="xml" expression="//product"/>
    <arg evaluator="xml" expression="//place"/>
  </args>
</payloadFactory>