繁体   English   中英

使用 wso2 esb 更改原始有效负载

[英]change original payload with wso2 esb

我将以下结构保存在属性 du wso2 中:

<ELEMENT>
   <ELEMENT_2>
   <ELEMENT_3>
   <ID> 173993 </ID>
   </ELEMENT_3>
   </ELEMENT_2>
   </ELEMENT>

我只想把 TEMP 带给孩子们:

<TEMP>
            <NAME>GEORGE</NAME>
            <COGNOME>MENDEZ</COGNOME>
            <BUSINESSNAME/>
            <CHANNEL>X091</CHANNEL>
        
   </TEMP>

我想在<ELEMENT_2>之后添加它们

最终结果:

 <ELEMENT>
   <ELEMENT_2>
   <NAME>GEORGE</NAME>
   <COGNOME>MENDEZ</COGNOME>
   <BUSINESSNAME/>
   <CHANNEL>X091</CHANNEL>
   <ELEMENT_3>
   <ID> 173993 </ID>
   </ELEMENT_3>
   </ELEMENT_2>
   </ELEMENT>

谢谢

你能检查一下你的要求是否通过以下代理配置实现。

    <?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="enrichProxy"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="http,https">
   <target>
      <inSequence>
         <property name="initial_payload" scope="default">
            <ELEMENT xmlns="">
               <ELEMENT_2>
                  <ELEMENT_3>
                     <ID>173993</ID>
                  </ELEMENT_3>
               </ELEMENT_2>
            </ELEMENT>
         </property>
         <call>
            <endpoint>
               <http uri-template="http://run.mocky.io/v3/7c578a1d-5427-4325-9f00-4ad7bb80dd04"/>
            </endpoint>
         </call>
         <log level="custom">
            <property expression="$body//TEMP/*" name="******"/>
         </log>
         <respond/>
      </inSequence>
   </target>
   <description/>
</proxy>

使用 xpath wso2 删除外部标签

更新

在这里,我使用 enrich mediator 将第二个属性 (..) 丰富回 body。

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="enrichProxy"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="http,https">
   <target>
      <inSequence>
         <property name="initial_payload" scope="default">
            <ELEMENT xmlns="">
               <ELEMENT_2>
                  <ELEMENT_3>
                     <ID>173993</ID>
                  </ELEMENT_3>
               </ELEMENT_2>
            </ELEMENT>
         </property>
         <property name="second_payload" scope="default">
            <TEMP xmlns="">
               <NAME>GEORGE</NAME>
               <COGNOME>MENDEZ</COGNOME>
               <BUSINESSNAME/>
               <CHANNEL>X091</CHANNEL>
            </TEMP>
         </property>
         <enrich>
            <source clone="true" property="second_payload" type="property"/>
            <target type="body"/>
         </enrich>
         <enrich>
            <source clone="true" xpath="$body//TEMP/*"/>
            <target action="child" xpath="$ctx:initial_payload//ELEMENT_2"/>
         </enrich>
         <log level="custom">
            <property expression="$ctx:initial_payload" name="******"/>
         </log>
         <respond/>
      </inSequence>
   </target>
   <description/>
</proxy>
                            

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM