首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ANT覆盖聋逗号列表分隔符

ANT覆盖聋逗号列表分隔符
EN

Stack Overflow用户
提问于 2014-04-23 18:16:15
回答 2查看 1.2K关注 0票数 0

我有一个需求,即脚本扫描名称/值对xml并填充值以供将来转换。

下面是一个示例Test.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<consumer>
<name>Sprint-1</name>
<value>1.0.0, 1.0.1</value>
<name>Sprint-2</name>
<value>1.1.0, 1.1.1</value>
<name>Sprint-3</name>
<value>1.2.0, 1.2.1</value>
</consumer>

这是我的蚂蚁脚本:

代码语言:javascript
复制
<xmlproperty file="Test.xml" collapseAttributes="true"/>
<for list="${consumer.name}" param="letter" delimiter=",">
        <sequential>
        <echo>@{letter}</echo>
    </sequential>
    </for>
<for list="${consumer.value}" param="string" delimiter=",">
    <sequential>
         <echo>@{string}</echo>
     </sequential>
    </for>

输出:

代码语言:javascript
复制
   [echo] Sprint-1
   [echo] Sprint-2
   [echo] Sprint-3
   [echo] 1.0.0
   [echo]  1.0.1
   [echo] 1.1.0
   [echo]  1.1.1
   [echo] 1.2.0
   [echo]  1.2.1    

很明显,输出不包含任何“、”分隔的值,因为ANT通过用默认值“、”分隔输入值来标记输入值。

我们有兴趣知道我们是否可以覆盖ant中的",“分隔符,这样在默认情况下,它在从xml文件中扫描值时使用类似于”AC.26“之类的内容?

然后我就可以用:

用于list="${consumer.value}“param=”字符串“delimiter=”delimiter=“

ANTXtras似乎提供了这个特性,但我无法让它工作:

感谢你的帮助。

谢谢你,桑迪普

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-24 14:56:42

@aa W

是的,我们可以在for循环中使用delimiter=“AC.26”--但只有当列表本身被“\”分隔符标记时才能使用。

这里的问题是当您使用

代码语言:javascript
复制
<xmlproperty file="Test.xml" collapseAttributes="true"/> 

默认情况下,ANT扫描文件并使用",“分隔符保存列表,我希望覆盖此默认行为。

事实上,当我在打字的时候,我只是有一个尤里卡的时刻(感谢马克!)并尝试使用

代码语言:javascript
复制
<xmlproperty file="Test.xml" collapseAttributes="true" delimiter="|"/>

现在,我的脚本按预期工作。

代码语言:javascript
复制
Output:

Test:
   [echo] Sprint-1
   [echo] Sprint-2
   [echo] Sprint-3
   [echo] 1.0.0, 1.0.1
   [echo] 1.1.0, 1.1.1
   [echo] 1.2.0, 1.2.1
票数 2
EN

Stack Overflow用户

发布于 2014-04-24 05:29:48

Per:http://ant-contrib.sourceforge.net/tasks/tasks/for.html,为ant-cont肋骨任务使用逗号作为默认的标记符.您可以覆盖到所需的值:

代码语言:javascript
复制
The delimiter characters that separates the values in the "list" attribute. 
Each character in the supplied string can act as a delimiter. 
This follows the semantics of the StringTokenizer class.

需要

代码语言:javascript
复制
No, defaults to ",".

所以你可以换个样子:

代码语言:javascript
复制
<for list="${consumer.value}" param="string" delimiter="|">
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23252175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档