字符引用"&#x1F"是无效的XML字符

per*_*mal 11 xml

谁能告诉我如何解决以下XML异常?

Character reference &#x1F is an invalid XML character
Run Code Online (Sandbox Code Playgroud)

我有一个带有字符的XML文件,当我尝试解析这个XML文件时,我得到了这个例外.有什么方法可以解决这个问题吗?

我的代码部分是这样的......

File f = new File("sample.xml");
dom = db.parse(f);
Run Code Online (Sandbox Code Playgroud)

我在调用函数时遇到异常parse().我也试过UTF8编码,并得到了同样的例外.

任何帮助深表感谢.

提前谢谢你!!!

rwi*_*zel 7

正如Michael Kay评论的那样:XML 1.1中的有效字符多于XML 1.0中的有效字符.如果XML有一个声明版本1.0的序言,那么更改prolog可能就足够了

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

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

如果仍然存在无效字符,则必须决定如何处理它们.Streamflyer将简化您的任务.


Ern*_*ill 1

XML 文件无效,解析器已告诉您这一点。控制字符十进制 31、十六进制 0x1F 不能出现在 XML 源中。您需要查看该文件并了解发生了什么情况。

  • 实际上,x1F 在 XML 1.1 中是有效的(只要它显示为数字字符引用),因此使用 1.1 解析器可能会提供一种前进的方法。然而,一般来说,如果人们要向您发送无效 XML 的内容,那么他​​们可能根本就不会使用 XML,而处理无效 XML 的正确解决方案始终是修复创建这些内容的程序。无论如何尝试修复它,但首先尝试让供应商修复它。 (3认同)