WSO2:丰富OM属性节点值

时间:2018-10-11 16:43:28

标签: wso2

我有一个空的OM属性,如下所示:

<property description="empty extra_data" name="extra_data" scope="default">
    <extra_data xmlns=""/>
</property>

稍后,我想向该XML结构添加数据。

第一次充实–添加子元素效果很好:

<enrich description="set URL child in extra data">
    <source clone="true" type="inline">
        <url />
    </source>
    <target action="child" xpath="$ctx:extra_data"/>
</enrich>

接下来,我要设置存储在另一个属性(“ url”)中的URL。 我已经尝试过这种方法,但是它不起作用(无效的目标):

<enrich description="set url" xmlns:ns="http://ws.apache.org/ns/synapse">
    <source clone="true" property="url" type="property"/>
    <target xpath="$ctx:extra_data//ns:url/text()"/>
</enrich>

有人可以帮我吗? :)

1 个答案:

答案 0 :(得分:0)

我找到了这个解决方案。在属性中设置XML标记及其内容,并将其附加为新的子元素。

<property description="url xml tag" expression="fn:concat('&lt;url>', $ctx:url, '&lt;/url>')" name="url_xml" scope="default" type="OM"/>
<enrich description="set url child in extra data">
    <source clone="true" property="url_xml" type="property"/>
    <target action="child" property="extra_data" type="property"/>
</enrich>

我仍然希望替换或设置节点内的值,但是现在可以使用...