簡體   English   中英

如何在Ant回聲中轉義特殊字符(在xml中無效)?

[英]how to escape special chars (invalid in xml) in Ant echo?

我正在嘗試在Ant中執行此操作:

<echo message="&#27;[44;1;37mSuccess!&#27;[m" />

但這不起作用:

BUILD FAILED
./build.xml:92: Character reference "&#

怎么做?

XML內容中的0x1B字符無效(XML中的無效字符 )。 因此,您需要一些解決方法。 我會采用JavaScript解決方法,但我還會提供2個其他解決方案:

javascript

<script language="javascript">
  project.setNewProperty("esc", "\u001b");
</script>
<echo>${esc}</echo>

native2ascii

如果要在文件中輸出,則可以先使用java escape \將其輸出,然后使用反向Native2Ascii例程將其轉換。 無論選擇哪種編碼,它始終會解碼\\u\u003c/code>序列。

<echo file="a.enc">\u001b</echo>
<native2ascii includes="a.enc" ext=".txt" dest="${basedir}"
              encoding="iso-8859-1" reverse="true" />

屬性文件

最后,您可能在文件中有不幸的字符串常量:

<property file="prop.txt" />
<echo>myEsc:${myEsc}</echo>

prop.txt內容是:

myEsc=\u001b

只需使用CDATA:

<project>

 <echo><![CDATA[
  &#27;[44;1;37mSuccess!&#27;[m
  ]]>
 </echo>

</project>

&是ant中的特殊字符,因此您應將其替換為'

<echo message="&amp;#27;[44;1;37mSuccess!&amp;#27;[m" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM