【发布时间】:2014-05-12 20:56:15
【问题描述】:
这个问题最近出现了。我一直在使用 ant 并知道我可以“破解”这个问题,但想问:ant 是否为这个用例提供了一个优雅的解决方案?
问题
当我使用 ant 复制 xml 文件并使用“过滤”属性“填充值”时,如何使其自动转义 & 符号(和其他 xml '特殊字符')?
上下文
我们让安装人员/实施人员手动编辑所有各种应用程序服务器特定的配置文件,而不是让他们在应用程序的根目录中编辑“build.properties”文件。 Ant 将文件的预配置“源”版本复制到“目标”目录,同时从属性文件中填充值
1) Build.properties 有这个值:
JDBC_PASSWORD=smith&wesson
2) “源”配置文件有这个元素:
<local-tx-datasource>
...
<password>@JDBC_PASSWORD@</password>
...
</local-tx-datasource>
3) Ant 复制“源”配置目录中的 xml 文件并使用“过滤”属性填充“JDBC_PASSWORD”(以及其他属性):
<copy todir="${appserver.home.dir}" filtering="yes">
<fileset dir="${appserver.conf.dir}">
<include name="**/*.xml"/>
</fileset>
</copy>
4) 因为该属性有一个 & 符号,所以生成的“目标”xml 文件是无效的。 (“&”应该是“&”)
<local-tx-datasource>
...
<password>smith&wesson</password>
...
</local-tx-datasource>
期望的结果
我想要这个而不是 4:
<local-tx-datasource>
...
<password>smith&wesson</password>
...
</local-tx-datasource>
附加
我需要担心整个“字符类型”,即小于、大于等,以及与号。
提前致谢
【问题讨论】:
-
我也有同样的问题。你是怎么解决你的?您是否编写了自定义编码器?谢谢。