在XML文档中必须转义哪些字符,或者在哪里可以找到这样的列表?


当前回答

也许这将有所帮助:

XML和HTML字符实体引用列表:

在SGML、HTML和XML文档中 被称为字符的逻辑结构 数据和属性值由 字符序列,其中每个 性格可以直接表现出来 (代表自己),或者可以 由一系列字符表示的 称为字符引用,其中 有两种类型:数字类型 字符引用和一个字符 实体引用。本文列出了 字符实体引用它 在HTML和XML文档中有效。

那篇文章列出了以下五个预定义的XML实体:

quot  "
amp   &
apos  '
lt    <
gt    >

其他回答

如果要处理字符数据而不是标记,则只有<和&需要转义:

2.4字符数据和标记

公认的答案不正确。最好是使用一个库来转义xml。

正如在另一个问题中提到的

基本上,控制字符和超出Unicode范围的字符是不允许的。这也意味着,例如,调用字符实体是禁止的。”

如果你只转义这五个字符。您可能会遇到这样的问题:发现了一个无效的XML字符(Unicode: 0xc)

摘自:XML,转义

有五个预定义的实体:

&lt; represents "<"
&gt; represents ">"
&amp; represents "&"
&apos; represents '
&quot; represents "

所有允许的Unicode字符都可以用数字字符引用表示。例如:

&#20013;

大多数控制字符和其他Unicode范围被明确排除,这意味着(我认为)它们不能出现转义或直接:

XML中的有效字符

也许这将有所帮助:

XML和HTML字符实体引用列表:

在SGML、HTML和XML文档中 被称为字符的逻辑结构 数据和属性值由 字符序列,其中每个 性格可以直接表现出来 (代表自己),或者可以 由一系列字符表示的 称为字符引用,其中 有两种类型:数字类型 字符引用和一个字符 实体引用。本文列出了 字符实体引用它 在HTML和XML文档中有效。

那篇文章列出了以下五个预定义的XML实体:

quot  "
amp   &
apos  '
lt    <
gt    >

这取决于上下文。对于内容,它是<和&,和]]>(尽管是一个由三个字符组成的字符串而不是一个字符)。

对于属性值,它是<、&、"和'。

对于CDATA,为[]>。