转义XML属性中的特殊(HTML标记)字符?

时间:2012-01-06 16:49:08

标签: html xml encoding

作为XML节点属性的一部分,我需要将HTML字符作为属性值的一部分传递,例如hello“/>。我不能将CDATA用作节点值的一部分,因为很多其他系统使用这种方法,我不能打破或重写这个过程,所以我坚持这个。

我无法对这些值进行HTML编码,因为它们在电子邮件中使用,然后逐字输出为HTML编码值(例如,< br> hello)。

有没有办法逃脱HTML(特别是<字符)并允许我将未编码的HTML内联作为属性?感谢。

1 个答案:

答案 0 :(得分:3)

必须将XML字符<>&"转义为与HTML实体&lt;相同,依此类推。使用XML APIS将接收/存储原始字符。 HTML中的其他字符实体应转换为UTF-8。十六进制(&#xFC;)和十进制(&#2285;)的数字实体很简单,但对于命名实体(&bull;),需要一个库。 (如果想要达到完整性。)