我有一个空的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>
有人可以帮我吗? :)
答案 0 :(得分:0)
我找到了这个解决方案。在属性中设置XML标记及其内容,并将其附加为新的子元素。
<property description="url xml tag" expression="fn:concat('<url>', $ctx:url, '</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>
我仍然希望替换或设置节点内的值,但是现在可以使用...