如何更改给定逻辑上的消息?

时间:2013-07-16 11:48:47

标签: wso2 wso2esb synapse

有消息:

<Employees xmlns="https://services">
    <Employee>
        <SNILS>111-111-111-1</SNILS>
        <Name>Den</Name>
        <Sex>M</Sex>
    </Employee>
</Employees>

<Employees xmlns="https://services">
    <Employee>
        <SNILS>111-111-111-2</SNILS>
        <Name>Elena</Name>
    </Employee>
</Employees>

<Employees xmlns="https://services">
    <Employee>
        <SNILS>111-111-111-3</SNILS>
        <Name>Elena</Name>
        <Sex/>
    </Employee>
</Employees>

输出应该如下所示:

<Employees xmlns="https://services">
    <Employee>
        <SNILS>111-111-111-1</SNILS>
        <Name>Den</Name>
        <Sex>M</Sex>
    </Employee>
</Employees>

<Employees xmlns="https://services">
    <Employee>
        <SNILS>111-111-111-2</SNILS>
        <Name>Elena</Name>
        <Sex>W</Sex>
    </Employee>
</Employees>

<Employees xmlns="https://services">
    <Employee>
        <SNILS>111-111-111-3</SNILS>
        <Name>Elena</Name>
        <Sex>W</Sex>
    </Employee>
</Employees>

我们必须添加一个新元素。

  1. 如果不存在
  2. 如果不是空的
  3. 添加了一个框图:

    enter image description here

    把我得到的价值

    <enrich>
       <source xpath="get-property('VALUE')"/>
       <target xmlns:t="https://services.rosminzdrav.ru/MedStaff" action="replace" type="custom" xpath="//t:Employee/t:Sex"/>
    </enrich>
    
    1. 如何检查元素是否为空?
    2. 如何添加新元素?

1 个答案:

答案 0 :(得分:1)

  1. 如何检查元素是否为空?
  2. 使用filte r介体并检查条件

    2.如何添加新元素?

    您可以根据自己的要求使用payload/enrich/xslt调解员