xml - Ant 用特殊字符替换文本

标签 xml ant

这应该很简单。我想打开一个文件,搜索一个字符串,然后用其中包含特殊字符的字符串替换该字符串:

<replace file="${src}/index.html" token="</copyright>"
value="</copyright> <legalnotice xml:id="DocLegalNotice" xml:base="../../../reusable-content/legal-notice.xml" xml:lang="">"/>

当我运行它时,构建不喜欢特殊字符:

The value of attribute "token" associated with an element type "replace"
must not contain the '<' character.

我是否必须转义“token”和“value”的每个特殊字符,还是有更简单的方法?

最佳答案

您的第一个问题是 ant 文件必须是格式正确的 XML 文件,格式正确的 XML 不能有 <属性值中的字符。使用 &lt;相反。

您的第二个问题是由双引号字符 ( " ) 分隔的属性值不能包含未转义的嵌入双引号字符。使用 '相反。

<replace file="${src}/index.html" 
         token="&lt;/copyright>"
         value="&lt;/copyright> &lt;legalnotice xml:id='DocLegalNotice' xml:base='../../../reusable-content/legal-notice.xml' xml:lang=''>"/>

至少您的 ant 文件将是格式正确的,但实际上,通过将 XML 文件视为文本来替换 XML 文件有点麻烦。更好的办法是使用基于 XML 的工具(例如 XSLT)来进行此类更改。

关于xml - Ant 用特殊字符替换文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31660466/

相关文章:

Javascript JSON 数据到 HTML 表

Ant 在 Windows 路径中找不到可执行文件

javascript - 在 Ant 中设置 Rhino 优化

Android Ant 构建在具有两个源文件夹的项目上

java - C++ 套接字消息包含额外的 ASCII 0 字符

java - 在Java中提取XML属性(ISBNDB)

java - 如何通过参数在 XSLT 中设置命名空间名称

ant - Ant的扩展点if/unless属性的用途是什么?

eclipse - 在eclipse中从模板自动生成ant文件

xml - 如何使用xml文件作为脚本的参数输入