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

WSO2响应流重写时输出附带原有剩余流内容问题咨询

WSO2响应流重写残留原有内容解决方法

问题原因

原配置中foreach中介器执行迭代时,每次生成的<TABLE>节点默认会追加到当前消息体的对应节点下,不会清空原有外层的<VueTable>、<JTblView>结构,因此最终输出会保留原有外层标签,同时附带新生成的内容。

调整方案

你可以先将迭代生成的节点存入临时数组属性,迭代完成后直接用收集到的内容完全替换消息体,具体配置如下:

<property name="XMLBody" 
    expression="$body//soap:Body//generic:xmlpres" 
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:gce="urn:GCE" 
    xmlns:generic="http://www.generix.fr/technicalframework/businesscomponent/applicationmodule/common" type="OM" />
<!-- 提取目标节点到body -->
<enrich>
    <source type="property" property="XMLBody" />
    <target type="body" />
</enrich>

<property name="XMLBody2" 
    expression="$body//VueTable"  type="OM" />
<enrich>
    <source type="property" property="XMLBody2" />
    <target type="body" />
</enrich>

<!-- 初始化数组存储生成的TABLE节点 -->
<property name="generatedTables" scope="default" type="ARRAY"/>

<foreach expression="$body//JTblViewRow">
    <sequence>
       <payloadFactory media-type="xml">
          <format>
             <TABLE xmlns="">
                <Code>$1</Code>
                <Libelle>$2</Libelle>
             </TABLE>
          </format>
          <args>
             <arg evaluator="xml" expression="//Cletbl/business_data"/>
             <arg evaluator="xml" expression="//Lib1/business_data"/>
          </args>
       </payloadFactory>
       <!-- 将生成的TABLE节点加入数组 -->
       <property name="currentTable" expression="$body//TABLE" type="OM"/>
       <script language="js"><![CDATA[
           var tables = mc.getProperty('generatedTables');
           tables.add(mc.getProperty('currentTable'));
           mc.setProperty('generatedTables', tables);
       ]]></script>
    </sequence>
 </foreach>

<!-- 用收集到的TABLE节点完全替换当前body,可根据需求调整外层结构 -->
<payloadFactory media-type="xml">
    <format>
        $1
    </format>
    <args>
        <arg evaluator="xml" expression="get-property('generatedTables')"/>
    </args>
</payloadFactory>

<property name="ContentType" value="text/xml" scope="axis2"/>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 12:09:03