如何在strings.xml中转义HTML属性?

时间:2015-03-19 23:22:33

标签: android xml localization

我正在向Android开发人员提供XML字符串文件,并在使用HTML样式时对转义规则感到困惑。

The documentation here仅讨论嵌入<b><i><u>代码而不进行转义,但它也表明您可以将Html.fromHtml与任何字符串一起使用HTML。

那么如何在strings.xml文件中出现像<font color="red">"Quote"</font>这样的大块HTML?

由于字体标记可以具有属性并且引号应该被转义,应该如何处理属性引用?

以下是无效的XML,显然这是错误的:

<string name="eg_1"><font color=\"red\">\"Quote\"</font></string> 

是否应该保留未转义的XML属性?

<string name="eg_2"><font color="red">\"Quote\"</font></string> 

它是有效的XML,但在字符串中有不同的转义规则似乎是错误的。

也许CDATA应该用来简单地保护整个字符串?

<string name="eg_3"><![CDATA[<font color=\"red\">\"Quote\"</font>]]></string>    

甚至只是逃避它?

<string name="eg_4">&lt;font color=\"red\"&gt;\"Quote\"&lt;/font&gt;</string>

2 个答案:

答案 0 :(得分:1)

  

那么如何在strings.xml文件中出现像“Quote”这样的大块HTML?

根据上面的第三个示例使用CDATA

答案 1 :(得分:0)

第一个例子是无效的XML(如你所说) 第二个示例是无效的strings.xml文件 第三个例子应该是这样的:

<string name="eg_3"><![CDATA[<font color="red">"Quote"</font>]]></string>

第四个例子很好。