我目前有一个类似下面的组合框:
//XAML
<ComboBox>
<ComboBoxItem> Awake & Alive</ComboBoxItem>
</ComboBox>
这就引发了一个错误:以&开头的实体引用或序列必须以分号';'终止。
我假设我缺少某种允许使用&的转义序列。如何设置此组合框的内容以包含&?
Answers:
简短的答案是&
用于对“&”号进行编码。
在最低层次上,XML解析器只是一个程序,它一次读取XML文档中的一个字符,然后以一种或另一种方式对其进行分析,然后相应地运行。它知道必须对某些内容进行不同于其他内容的处理。这些特殊情况的区别在于是否存在诸如“
&
”和“<
”之类的字符。它们充当解析器的标志。它们界定了文档的实际内容,警告解析器必须在此时执行某些操作,而不是简单地将相邻内容传递给某些下游应用程序。...因此,解决当前问题的一种方法是用适当的实体引用替换内容中的“&”号
<company>Harris & George</company>
。
另外,您可以在ComboBoxItem元素的内容周围使用CDATA标记。我认为它可以更好地保持文本的可读性。
//XAML
<ComboBox>
<ComboBoxItem><![CDATA[Awake & Alive]]></ComboBoxItem>
</ComboBox>