使用wso2 6.1 Enrich介体从xml中删除标记

Gla*_*sta 2 wso2 wso2esb

我有以下xml结构:

<a>
 <b>
   <c>foo</c>
 </b>
 <d>foo</d>
</a>
Run Code Online (Sandbox Code Playgroud)

我需要<b>从xml中删除标签.

所以,xml应该是这样的,最后:

<a>
  <d>foo</d>
</a>
Run Code Online (Sandbox Code Playgroud)

我试过使用Enrich Mediator,wso2 6.1,但我没有成功.

有人可以帮忙弄清楚如何删除此标签?

谢谢!

Rod*_*los 5

你不能轻易地删除富含中介的子元素.如果您的有效负载是这样的:

<Body>
  <b>
    <c>foo</c>
  </b>
  <d>foo</d>
</Body>
Run Code Online (Sandbox Code Playgroud)

选择第二个标签并用它替换身体将是一件简单的事情:

<enrich>
  <source clone="true" xpath="$body/d"/>
  <target type="body"/>
</enrich>
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,由于您需要从中删除子元素,因此<a>可能需要使用脚本调解器来执行此操作:

<script language="js"><![CDATA[
     var message = mc.getPayloadXML();
     delete message.b;
     mc.setPayloadXML(message);
]]></script>
Run Code Online (Sandbox Code Playgroud)

哪个会得到你想要的结果.