我有一个空的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>
谁能帮我?:)
我找到了这个解决方案。在属性中设置 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>
我仍然想在节点内替换或设置一个值,但这现在有效......