あなたは次のように構成してみてください:あなたのXMLソース内の多くの属性は、あなただけに応じenricher要素を追加する必要があるかにかかわらず
<enricher doc:name="Message Enricher">
<dw:transform-message doc:name="Transform Message">
<dw:set-payload><![CDATA[%dw 1.0
%output application/java
%var evaluation = "ABC"
%var substitution = "BC"
%function substitute(serverVal)(
serverVal when serverVal != evaluation otherwise substitution
)
---
[email protected] mapObject {
($$): substitute($)
}
]]></dw:set-payload>
</dw:transform-message>
<enrich source="#[payload.Server]" target="#[variable:param1]"/>
<enrich source="#[payload.Server2]" target="#[variable:param2]"/>
</enricher>
を。 <enrich source="#[payload.Server3]" target="#[variable:param3]"/>
は、新しい変数を設定するには:
<Interface Server="ABC" Server2="DEF" Server3="ABC"/>
が次にあなただけ追加する必要があります。
はたとえば、新しいXMLソースを持っています。
注:DataWeaveは、EEの1つです。 CEについては、Groovyなどの他の変圧器で置き換えることができます。以下の例では、ペイロードはStringの形式です。元のアプリケーション/ xml形式はbyte-array-to-string-transformer
を使用してStringに変換されます。
<scripting:component doc:name="Groovy">
<scripting:script engine="Groovy"><![CDATA[def attributeMap = new XmlSlurper().parseText(payload).attributes()
attributeMap.each() {
it.value = it.value == "ABC" ? "BC" : it.value
}
payload = attributeMap]]></scripting:script>
</scripting:component>
ニースのアプローチ、私はうーん、私はSAXParserの例外を取得しています – elwis
行くことをあげる、DataWeaveのみということである - 私はCEを実行しているので、? – elwis
* DataWeave *は** EE **機能の1つです。 Groovyを代替として使用するための私の答えを更新しました。 –