Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Ant中生成逗号分隔的列表?_Ant_For Loop_Csv_Ant Contrib - Fatal编程技术网

如何在Ant中生成逗号分隔的列表?

如何在Ant中生成逗号分隔的列表?,ant,for-loop,csv,ant-contrib,Ant,For Loop,Csv,Ant Contrib,如何从Ant中的for循环生成逗号分隔的列表 我可以使用ant contrib for循环访问源属性,但我不确定如何输出到目标属性: <ac:for list="${comma_seperated}" param="entry"> <sequential> <if> <isset property="@{entry}_enabled" /> <then>

如何从Ant中的for循环生成逗号分隔的列表

我可以使用ant contrib for循环访问源属性,但我不确定如何输出到目标属性:

<ac:for list="${comma_seperated}" param="entry">
    <sequential>
         <if>
         <isset property="@{entry}_enabled" />
             <then>
             <!-- append to property enabled_list here -->
             </then>
         </if>
    </sequential>
</ac:for>


尝试使用标准Ant任务
。请参阅。

一些使用Ant插件迭代csv属性并在每次迭代中附加内容的代码片段:

<project xmlns:fl="antlib:it.haefelinger.flaka">

 <property name="foobar" value="Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda"/>
 <property name="foobaz" value="My,Ny,Xi,Omikron,Pi,Rho,Sigma,Tau,Ypsilon,Phi,Chi,Psi,Omega"/>

 <fl:for var="item" in="split('${foobaz}', ',')">
  <fl:let>foobar ::= concat('${foobar}',',#{item}')</fl:let>
 </fl:for>

<echo>$${foobar} => ${foobar}</echo>

</project>
编辑
很高兴你有了这个想法,尽管我的代码片段有点愚蠢,这一点可以理解 简单地


不知道您的需求的详细信息,但这里有一个经过修改的片段,在csv属性的任何项目
中添加了/length后缀:

<project xmlns:fl="antlib:it.haefelinger.flaka">
 <property name="foobar" value="Alpha,Beta,Gamma,Delta"/>
 <property name="foobaz" value=""/>

 <fl:for var="item" in="split('${foobar}', ',')">
  <fl:choose>
   <!-- avoid a leading ',' -->
   <fl:when test="'${foobaz}'.length eq 0">
    <fl:let>foobaz ::= concat('${foobaz}','#{item}/length#{item.length}')</fl:let>
   </fl:when>
   <fl:otherwise>
    <fl:let>foobaz ::= concat('${foobaz}',',#{item}/length#{item.length}')</fl:let>
   </fl:otherwise>
  </fl:choose>
 </fl:for>
 <!-- optionally overwrite ${foobar} with ${foobaz} --> 
 <fl:let>foobar ::= '${foobaz}'</fl:let>

 <echo>$${foobar} => ${foobar}</echo>
</project> 

它实际上不是一个文件集,但它是一个看起来像“三星/GT-S5230N,萨基姆/Cosy,诺基亚/6131_-SPC,诺基亚/6131_-NFC_-SPC,诺基亚/6212_-NFC_-SPC”的属性哇,谢谢。。。把我从蚂蚁的地狱里救了出来(我没有使用确切的代码,但concat的东西确实救了我的命!)
<project xmlns:fl="antlib:it.haefelinger.flaka">
 <property name="foobar" value="Alpha,Beta,Gamma,Delta"/>
 <property name="foobaz" value=""/>

 <fl:for var="item" in="split('${foobar}', ',')">
  <fl:choose>
   <!-- avoid a leading ',' -->
   <fl:when test="'${foobaz}'.length eq 0">
    <fl:let>foobaz ::= concat('${foobaz}','#{item}/length#{item.length}')</fl:let>
   </fl:when>
   <fl:otherwise>
    <fl:let>foobaz ::= concat('${foobaz}',',#{item}/length#{item.length}')</fl:let>
   </fl:otherwise>
  </fl:choose>
 </fl:for>
 <!-- optionally overwrite ${foobar} with ${foobaz} --> 
 <fl:let>foobar ::= '${foobaz}'</fl:let>

 <echo>$${foobar} => ${foobar}</echo>
</project> 
[echo] ${foobar} => Alpha/length5,Beta/length4,Gamma/length5,Delta/length5