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

我正在尝试:

<root>
  text: &#27;
</root>

但是解析器说:

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)

如何在那里使用?

解决方法:

您不能使用( in XML 1.0).在XML 1.1中,可以使用的字符范围稍大一些,而characters are expressed differently可以使用,但即使那样,&#27;也可以使用.据“限制”(十六进制为&#x1B;),据我所知,这意味着它不是有效的XML,即使XML解析器应成功处理它也是如此.请注意,“ null”字符(&#x00;)永远无效.这是Wiki article on these characters in XML

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

<?xml version="1.1"?>

实际上,我做到了,并且有效:

<?xml version="1.1"?>
<root>&#27;</root>
上一篇:javascript-jQuery中的特殊字符


下一篇:javascript-如果我清理所有输入,是否需要转义输出?