我正在使用Escape
C#类中的方法SecurityElement
,以确保以后收到的某些文本可以安全地集成到XML文档中。
我只是noticed认为&字符无效。
问题
我了解其他字符如何弄乱XML文档并使其无法解析,但我不明白为什么&会这么做。
答案 0 :(得分:4)
因为&
用于表示XML实体。它用作其他无效字符的“转义”字符(例如<
的意思是<
),因此它本身不能成为XML中的有效字符。您如何分辨&
是“&”号还是>
的开头?
为了用XML表示“&”号,您需要使用&
。
这类似于使用C(和类似语言)的方式,其中\
用于转义\n
(换行符),\t
(制表符)等,并且必须本身以\\
的形式转义。
答案 1 :(得分:0)
从引用的文档中可以看出,与号被用作其他代码(例如> is >
等)的转义代码的一部分,因此,如果它自己有效,则会感到困惑。