2011-05-24 70 views
2

我的要求是为循环设置一些动态变量在到DataPower背景是这样的:设置动态variabe

<dp:set-variable name="'var://context/txn-info/appErrorInd[$i+1]'" 
       value="'yes'" /> 

变量$我将继续发生变化。上面的代码不起作用。有人可以给我一个解决方案吗?

+1

好问题,+1。查看我的答案,获得完整,简短的解决方案和解释。 – 2011-05-24 13:27:52

回答

1

使用

<dp:set-variable name="'var:{//context/txn-info/appErrorInd[$i+1]}'" 
       value="'yes'" /> 

以上是所提供的代码的一个机械校正。它很可能包含另一个更微妙的错误。要纠正这个错误,也使用:

<dp:set-variable name="'var:{(//context/txn-info/appErrorInd)[$i+1]}'" 
       value="'yes'" /> 

说明

  1. 使用AVT

  2. []运算符的优先级高于伪运算符的//。覆盖这个需要明确使用括号。

+0

对不起,现在这个问题捏。不明白以上。我们不能使用。为什么'var:'部分位于花括号的外面? – Suresh 2011-12-29 16:32:49

+0

@ user1004770:字符串'“var:”'是常量 - 不是动态计算的。使用AVT({}括号)来指定动态计算的值是有意义的。 – 2011-12-29 16:50:13

+0

感谢您的解释:) – Suresh 2011-12-30 05:37:07