如果关闭,请在此处更正我的术语:
XML的5个字符替换是:
所有这些替换都需要在元素文本中进行吗?或者只属性文字?(术语修正?)
例如,这是有效的XML吗?
<myelement>x && y</myelement>
<myelement>And I quote, "no"</myelement>
Run Code Online (Sandbox Code Playgroud)
>
并且<
看起来很明显在这方面代替,但我不清楚,如果替换规则是全球整个XML文档,或者如果他们不同的适用于文档的不同部分(例如,CDATA部分适用不同的规则).
假设:这是无效的XML:
<myelement field="no & allowed here"/>
<myelement field="no <> allowed here"/>
Run Code Online (Sandbox Code Playgroud)
引号是明显的属性分隔符,<>是元素文本的明显分隔符.
Mic*_*Kay 14
在元素的内容,您只需要逃生&
和<
; 你永远不需要逃避单引号或双引号,>
只有当它作为序列的一部分出现时才需要转义]]>
(许多人无条件地替换它,因为这更简单).
在属性内容你只需要逃避&
和<
,要么'
或者"
,这取决于哪一个被用作属性定界符.
&
以注释或CDATA部分或元素或属性名称无法识别以实体开头的实体,因此不得在这些上下文中转义特殊字符.