You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android字符串资源中如何用CDATA写入&、 及指定字符串?

嘿,这个问题我之前帮不少开发者解决过,其实用CDATA处理起来特别简单,我给你拆解清楚~

在Android字符串资源中用CDATA处理特殊内容

XML里的CDATA区块(<![CDATA[...]]>)的核心作用就是让包裹的内容跳过XML解析,直接以纯文本形式被读取,所以不管是&amp;这种XML转义字符,还是换行需求,都能轻松搞定。

1. 同时写入&和换行的实现

如果你需要的字符串里既有&amp;,又要包含显示用的换行,直接把内容塞进CDATA就行:

<string name="mixed_content"><![CDATA[Upload Files &amp; Fill Details\nThen Submit Form]]></string>

要是你只是想在XML代码里换行(方便自己阅读,不影响APP显示),也可以这么写:

<string name="mixed_content"><![CDATA[Upload Files &amp; Fill Details
Then Submit Form]]></string>

⚠️ 注意:XML代码里的实际换行,在Android中会被识别成空格;如果要让APP界面显示换行,还是得用\n转义符。

2. 输出“Attach Photos & Write Comments”的写法

你想要最终得到的字符串就是Attach Photos &amp; Write Comments(保留&amp;而不是被XML解析成&),用CDATA刚好能满足——直接把整个目标字符串包裹进去,XML不会解析里面的转义字符:

<string name="attach_comment_action"><![CDATA[Attach Photos &amp; Write Comments]]></string>

之后在代码里调用getString(R.string.attach_comment_action),拿到的就是完全符合要求的字符串啦。

小提示

CDATA区块里不能出现]]>这个组合,因为这会被当作CDATA的结束标记。如果你的内容里刚好有这个(概率极低),可以拆分一下或者做简单处理。

内容的提问来源于stack exchange,提问作者Geek Tanmoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:26:56