Мой вход XML-этоИспользование условных XPath в Mule ESB
<DatabaseValues>
<Value>
<Sender>Satya</Sender>
<WB_TRANSFORMATION>1</WB_TRANSFORMATION>
<WB_VALIDATION>0</WB_VALIDATION>
<WB_ENRICHMENT>0</WB_ENRICHMENT>
<Receiver>Ch</Receiver>
</Value>
<Value>
<Sender>Keerthika</Sender>
<WB_TRANSFORMATION>1</WB_TRANSFORMATION>
<WB_VALIDATION>0</WB_VALIDATION>
<WB_ENRICHMENT>0</WB_ENRICHMENT>
<Receiver>SS</Receiver>
</Value>
Мое требование, чтобы извлечь значение <Receiver>
, основываясь на соответствующем <Sender>
значения. (например, мне нужно извлечь «Ch», когда значение Sender «Satya»). Это должно быть достигнуто с использованием выражения xpath.
Я попытался следующий
<set-variable variableName="satya" value="#[xpath3('/DatabaseValues/Value[1]/Sender')]" doc:name="Variable"/>
, а затем я сделал это
#[xpath3('/DatabaseValues/Value[Sender="flowVars.satya"]/Receiver')]
Там нет значения извлекается. Но когда я использовал ниже логики он работал
#[xpath3('/DatabaseValues/Value[Sender="Satya"]/Receiver')]
Моя конфигурация потока выглядит следующим образом
<file:connector name="File" autoDelete="true" streaming="false" validateConnections="true" doc:name="File"/>
<flow name="Sender_TransformationFlow">
<file:inbound-endpoint path="C:\Users\Satyakeerthika_Ch\Desktop\Input" connector-ref="File" responseTimeout="10000" doc:name="File"/>
<set-variable variableName="satya" value="#[xpath3('/DatabaseValues/Value[1]/Sender')]" doc:name="Variable"/>
<set-variable variableName="xpath" value="#[xpath3('/DatabaseValues/Value[Sender= "+ flowVars.satya +"]/Receiver')]" doc:name="Variable"/>
<logger message="#[flowVars.xpath]" level="INFO" doc:name="Logger"/>
<logger message="#[flowVars.satya]" level="INFO" doc:name="Logger"/>
</flow>
Я хочу знать, как я могу использовать flowVars вместо жесткого кодированного значения в Xpath сделать проверить.
Я использую AnyPoint студийной версии 5.1.0
Вы отсутствующие одиночные кавычки либо сторона " Используйте выражение, которое я отвечал, как это: # [xpath3 ('/ DatabaseValues / Значение [Sender =' " + flowVars.satya + '"]/Receiver')] –