-4

WSO2 ESB中的响应格式如下:</p>

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

但我只想要身体,我该怎么办?

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

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

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

1 回答 1

0

您可以使用 payloadFactory

<payloadFactory media-type="xml">
  <format>
    <jsonObject>
      <cookie>$1</cookie>
      <product>$2</product>
      <place>$3</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": $1,
      "product": $2,
      "place": $3
    }
  </format>
  <args>
    <arg evaluator="xml" expression="//cookie"/>
    <arg evaluator="xml" expression="//product"/>
    <arg evaluator="xml" expression="//place"/>
  </args>
</payloadFactory>
于 2017-11-02T13:11:18.003 回答