在xpath表达式中使用mule变量值
我有一个变量集在xpath表达式中使用mule变量值,xpath,expression,mule,mule-studio,Xpath,Expression,Mule,Mule Studio,我有一个变量集 <set-variable variableName="productIdvar" value="#[xpath://productId]" doc:name="Variable" /> 在它即将到来的时候 我想在xpath表达式中使用变量productIdvar的值 <when expression="//*[local-name()='itemid']=?" evaluator="xpath"> 或 我应该用什么来代替?要获取变量的值
<set-variable variableName="productIdvar" value="#[xpath://productId]" doc:name="Variable" />
在它即将到来的时候
我想在xpath表达式中使用变量productIdvar的值
<when expression="//*[local-name()='itemid']=?" evaluator="xpath">
或
我应该用什么来代替?要获取变量的值
谢谢
拉胡尔。
请注意,表达式中的
itemid
周围没有引号,下面的表达式应该适用于您
<when expression="#[xpath('//*[local-name()=\'itemid\']').text == productIdvar ]">
通过这种方式,您应该能够将xpath的结果与“productIdVar”变量进行比较
希望这有帮助。如果您的MEL有点混乱,请尝试my-XPath转换器,它可以动态解析XPath变量。您可以使用XPATH3并尝试类似的方法
#[xpath3('/products/validlity')==flowVars.productIdvar]
Xpath3参考:-“productIdvar”也是一个DOM文本节点,为什么不:
productIdvar.text
?@David Dossot根据OP中提供的配置代码,productIdvar是字符串[xpath://productId] . 如果是xpath('//productId'),那么我应该使用productIdVar.text您是正确的:我没有意识到OP使用了不推荐的表达式语法来设置productIdVar
,我错误地假设它是MEL:$@user1760178:感谢您的回复,但是使用上面的答案,我得到了以下错误-由以下原因引起:org.mule.api.expression.ExpressionRuntimeException:执行表达式“xpath('/*[local-name()=\'itemid\'])。text==productIdvar”失败。@DavidDossot:我甚至使用了productIdvar.text,它给出了相同的异常。
<when expression="#[xpath('//*[local-name()=itemid]') == productIdvar ]">
<when expression="#[xpath('//*[local-name()=\'itemid\']').text == productIdvar ]">