0

我有一个包含 0xc2 0x85 个字符的 utf-8 字符串。Eclipse 将其视为空白。某些应用程序将此视为“...”。

因为,字符串是 xml,所以我正在使用 jdom 解析器并且 jdom 解析器失败并给出以下异常。

org.jdom.input.JDOMParseException:第 1 行错误:prolog 中不允许内容。在 org.jdom.input.SAXBuilder.build(SAXBuilder.java:381) 在 org.jdom.input.SAXBuilder.build(SAXBuilder.java:764)

关于为什么 jdom 解析器不将其视为空格的任何想法?我还能做些什么来让解析器成功验证 xml?xml 字符串中的所有其他元素似乎都很好。

4

2 回答 2

0

JDOM(或实际上是 SAX 解析器)解析该字符没有任何问题。你得到的异常总是由 xml prolog 之前的非法字符引起的:

<?xml version="1.0" encoding="UTF-8"?>

可能在此之前您有“隐形”字符,但它们仍然存在。

于 2013-05-09T16:48:01.257 回答
0

空白在 XML 中具有非常特殊的含义。在 XML 中的根元素之外,您可以使用的唯一字符是 (#x20 | #x9 | #xD | #xA)+ (空格、回车、换行和制表符)。

XML 中的序言区域允许包含有限的结构和空间。

您显示的字符在根元素之外的有效 XML 中是不允许的。对不起。

于 2013-05-09T21:20:24.443 回答