在XML文档中必须转义哪些字符,或者在哪里可以找到这样的列表?
当前回答
如果要处理字符数据而不是标记,则只有<和&需要转义:
2.4字符数据和标记
其他回答
公认的答案不正确。最好是使用一个库来转义xml。
正如在另一个问题中提到的
基本上,控制字符和超出Unicode范围的字符是不允许的。这也意味着,例如,调用字符实体是禁止的。”
如果你只转义这五个字符。您可能会遇到这样的问题:发现了一个无效的XML字符(Unicode: 0xc)
如果要处理字符数据而不是标记,则只有<和&需要转义:
2.4字符数据和标记
根据万维网联盟(w3C)的规范,有5个字符不能以文字形式出现在XML文档中,除非用作标记分隔符或在注释、处理指令或CDATA部分中使用。在所有其他情况下,这些字符必须使用对应的实体或根据下表的数字引用替换:
Original CharacterXML entity replacementXML numeric replacement < < < > > > " " " & & & ' ' '
注意,前面提到的实体也可以在HTML中使用,除了',它是在XHTML 1.0中引入的,在HTML 4中没有声明。因此,为了确保向后兼容性,XHTML规范建议使用'代替。
除了常见的五个字符[<,>,&,"和']之外,我还将转义垂直制表符(0x0B)。它是有效的UTF-8,但不是有效的XML 1.0,甚至许多库(包括高度可移植的(ANSI C)库libxml2)都会遗漏它,并无声地输出无效的XML。
摘自:XML,转义
有五个预定义的实体:
< represents "<"
> represents ">"
& represents "&"
' represents '
" represents "
所有允许的Unicode字符都可以用数字字符引用表示。例如:
中
大多数控制字符和其他Unicode范围被明确排除,这意味着(我认为)它们不能出现转义或直接:
XML中的有效字符
推荐文章
- 如何将XML转换成PHP数组?
- XMLHttpRequest Origin null不允许Access-Control-Allow-Origin for file:/// to file:///(无服务器)
- 如何在JavaScript中转义单引号(')?
- 如何在javadoc中转义@字符?
- LINQ读取XML
- 如何设置RecyclerView应用程序:layoutManager=""从XML?
- 如何转义JSON字符串包含换行字符使用JavaScript?
- JavaScript中变量字符串的XML解析
- 具有多个条件的XPath
- 格式化XML字符串以打印友好的XML字符串
- malformedurlexception:没有协议
- 选择包含“foo”的属性的正确XPath是什么?
- 字符串资源新行/n不可能?
- Android: ScrollView vs NestedScrollView
- 如何把空格字符放入XML字符串名?