You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSO2 Enterprise Integrator 6.6.0 XML转JSON强制指定单元素转数组问题

WSO2 Enterprise Integrator XML转JSON强制单元素转为数组方案

你提到的xml-multiple属性不需要手动添加到原始XML payload中,你可以在WSO2 EI的消息处理流程中临时标注需要强制转数组的元素,该标注不会出现在最终的JSON输出结果里。

实现方案

方案1:针对特定元素生效(推荐)

通过XSLT中介器在XML转JSON前临时给目标元素添加xml-multiple="true"属性,WSO2 EI内置的JSON转换器识别到该属性后,会强制将对应元素转为数组格式,无论子元素数量是1还是多个。
操作步骤:

  • 在你的集成序列中,XML转JSON操作前加入XSLT中介器,使用以下样式表:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <!-- 复制所有原有节点和属性 -->
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
    <!-- 给item元素添加xml-multiple标注 -->
    <xsl:template match="item">
        <item xml-multiple="true">
            <xsl:apply-templates select="@*|node()"/>
        </item>
    </xsl:template>
</xsl:stylesheet>
  • 后续执行常规XML转JSON操作即可,输出的item字段始终为数组格式。

方案2:全局强制所有单元素转为数组

如果你需要所有单个子元素都自动转为数组,可以在集成序列中添加以下属性配置:

<property name="JSON_FORCE_ARRAY" value="true" scope="axis2"/>

该配置会作用于整个消息流的XML转JSON操作,所有单个出现的元素都会被转为数组,不需要逐个标注。

效果验证

处理后无论原始XML中item是单个还是多个,输出JSON统一为以下格式:

{
    "items": {
        "item": [{}]
    }
}

内容的提问来源于stack exchange,提问作者Mewster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:06:01