我在下面有一个循环来在我的XML上创建一个变量数组。问题是它第一次运行时,它在我的输出数组中第一次出现时包含了我的所有行。 欢迎任何评论。 非常感谢!
pqpwp*.appendNode('PostalAcc', values[0])
pqpwp*.appendNode('CloseAmt', values[1])
pqpwp*.appendNode('Rates',)
def rates = ltrData.PqPwp.Rates
def values = ["Under 0 0.10% 0.08% 0.10%","Under 1 0.10% 0.08% 0.10%","Under 2 0.10% 0.08% 0.10%","Under 3 0.10% 0.08% 0.10%"]
for (int i = 2; i<10; i++)
{
if (values[i])
{
rates*.appendNode('Rate',)
def rate = ltrData.PqPwp.Rates.Rate
rate*.appendNode('Column1', values[i].substring(0,14))
rate*.appendNode('Column2', values[i].substring(15,23))
rate*.appendNode('Column3', values[i].substring(24,31))
rate*.appendNode('Column4', values[i].substring(32,42))
}
}
实际的xml输出
<ltrData>
<PqPwp>
<PostalAcc>910060121</PostalAcc>
<CloseAmt>514.17</CloseAmt>
<Rates>
<Rate>
<Column1>Under �1 2</Column1>
<Column2> 0.10%</Column2>
<Column3> 0.08%</Column3>
<Column4> 0.10%</Column4>
<Column1>�1 plus 3</Column1>
<Column2> 1.39%</Column2>
<Column3> 1.11%</Column3>
<Column4> 1.40%</Column4>
</Rate>
<Rate>
<Column1>�1 plus 3</Column1>
<Column2> 1.39%</Column2>
<Column3> 1.11%</Column3>
<Column4> 1.40%</Column4>
</Rate>
</Rates>
需要xml输出
<ltrData>
<PqPwp>
<PostalAcc>910060121</PostalAcc>
<CloseAmt>514.17</CloseAmt>
<Rates>
<Rate>
<Column1>Under �1 2</Column1>
<Column2> 0.10%</Column2>
<Column3> 0.08%</Column3>
<Column4> 0.10%</Column4>
</Rate>
<Rate>
<Column1>�1 plus 3</Column1>
<Column2> 1.39%</Column2>
<Column3> 1.11%</Column3>
<Column4> 1.40%</Column4>
</Rate>
</Rates>
答案 0 :(得分:0)
固定代码如下,希望其他人需要它:)
if (values[i] != "")
{
def rate = rates*.appendNode('Rate')
rate*.appendNode('Column1',values[i].substring(0,14))
rate*.appendNode('Column2', values[i].substring(15,23))
rate*.appendNode('Column3', values[i].substring(24,31))
rate*.appendNode('Column4', values[i].substring(32,42))
}
}