WSO2 ESB中的响应格式:
<testresponse xmlns="http://abcd/service">
<cookie>yummy</cookie>
<product>YM11</product>
<place>US</place>
</testresponse >
但我只想要身体,我该怎么办?
<cookie>yummy</cookie>
<product>YM11</product>
<place>US</place>
目标是在JSON对象中转换xml,如下所示
{
"cookie": "yummy",
"product": "YM11",
"place": "US"
}
答案 0 :(得分: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>