如何在 XML 中使用 ESC () 字符?

yeg*_*256 4 java xml dom sax escaping

我正在尝试这个:

<root>
  text: &#27;
</root>
Run Code Online (Sandbox Code Playgroud)

但是解析器说:

org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 12; 
Character reference "&#27" is an invalid XML character.
  at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
  at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
  at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121)
Run Code Online (Sandbox Code Playgroud)

在那里如何使用它?

rol*_*lfl 5

你不能(在 XML 1.0 中)。在 XML 1.1 中,您可以使用更大范围的字符,并且字符的表达方式有所不同,但即使如此,&#27;也是“受限制的”(它是十六进制&#x1B;),据我所知,这意味着它是无效的XML,即使 XML 解析器应该成功处理它。请注意,“空”字符 ( &#x00;) 永远无效。这是一篇关于 XML 中这些字符Wiki 文章

您可以尝试将 XML 文档强制转换为 XML 1.1 并查看您的解析器是否会成功处理它.... 将 XML 的第一行设置为:

<?xml version="1.1"?>
Run Code Online (Sandbox Code Playgroud)

事实上,我这样做了,并且有效:

<?xml version="1.1"?>
<root>&#27;</root>
Run Code Online (Sandbox Code Playgroud)