在XML文档中必须转义哪些字符,或者在哪里可以找到这样的列表?
当前回答
根据万维网联盟(w3C)的规范,有5个字符不能以文字形式出现在XML文档中,除非用作标记分隔符或在注释、处理指令或CDATA部分中使用。在所有其他情况下,这些字符必须使用对应的实体或根据下表的数字引用替换:
Original CharacterXML entity replacementXML numeric replacement < < < > > > " " " & & & ' ' '
注意,前面提到的实体也可以在HTML中使用,除了',它是在XHTML 1.0中引入的,在HTML 4中没有声明。因此,为了确保向后兼容性,XHTML规范建议使用'代替。
其他回答
如果要处理字符数据而不是标记,则只有<和&需要转义:
2.4字符数据和标记
除了常见的五个字符[<,>,&,"和']之外,我还将转义垂直制表符(0x0B)。它是有效的UTF-8,但不是有效的XML 1.0,甚至许多库(包括高度可移植的(ANSI C)库libxml2)都会遗漏它,并无声地输出无效的XML。
也许这将有所帮助:
XML和HTML字符实体引用列表:
在SGML、HTML和XML文档中 被称为字符的逻辑结构 数据和属性值由 字符序列,其中每个 性格可以直接表现出来 (代表自己),或者可以 由一系列字符表示的 称为字符引用,其中 有两种类型:数字类型 字符引用和一个字符 实体引用。本文列出了 字符实体引用它 在HTML和XML文档中有效。
那篇文章列出了以下五个预定义的XML实体:
quot "
amp &
apos '
lt <
gt >
摘自:XML,转义
有五个预定义的实体:
< represents "<"
> represents ">"
& represents "&"
' represents '
" represents "
所有允许的Unicode字符都可以用数字字符引用表示。例如:
中
大多数控制字符和其他Unicode范围被明确排除,这意味着(我认为)它们不能出现转义或直接:
XML中的有效字符
这取决于上下文。对于内容,它是<和&,和]]>(尽管是一个由三个字符组成的字符串而不是一个字符)。
对于属性值,它是<、&、"和'。
对于CDATA,为[]>。
推荐文章
- 用XPath按属性值选择Element
- 谷歌协议缓冲区vs json vs XML
- 如何在Android中获得一个RadioGroup的选定索引
- XML Schema minOccurs / maxOccurs默认值
- 如何在命令提示符中使用空格?
- 用PHP删除字符串的前4个字符
- JavaScript中的转义引号
- XPath根据子元素的值选择元素
- 用java解析DOM的规范化——它是如何工作的?
- c++最好的开放XML解析器是什么?
- XPath:从子节点获取父节点
- 将XmlDocument转换为字符串
- 如何在Python中使用XPath ?
- 错误:不允许匹配“[xX][mM][lL]”的处理指令目标
- 如何使用PHP动态生成XML文件?