我正在向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"><font color=\"red\">\"Quote\"</font></string>
答案 0 :(得分:1)
那么如何在strings.xml文件中出现像“Quote”这样的大块HTML?
根据上面的第三个示例使用CDATA
。
答案 1 :(得分:0)
第一个例子是无效的XML(如你所说) 第二个示例是无效的strings.xml文件 第三个例子应该是这样的:
<string name="eg_3"><![CDATA[<font color="red">"Quote"</font>]]></string>
第四个例子很好。