致命错误:1:1:prolog中不允许内容

gue*_*t86 19 java xml

我正在使用Java,我正试图从一些http链接获取XML文档.我正在使用的代码是:

URL url = new URL(link);

HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
Document doc = null;

CountInputStream in = new CountInputStream(url.openStream());
doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(in);
Run Code Online (Sandbox Code Playgroud)

不注意CountInputStream,它是一些像常规输入流一样的特殊类.

使用上面的代码,我有时会遇到错误Fatal Error :1:1: Content is not allowed in prolog.我认为这与xml格式错误有关,但我不知道如何修复它.

MvG*_*MvG 27

我正在将我的评论转为答案,因此可以接受,这个问题不再仍然没有答案.

最可能的原因是格式错误的响应,其中包括初始之前的字符<?xml …>.因此,请查看通过HTTP传输的文档,并在服务器端修复此问题.

  • 文件开头的这些奇怪的字符是 BOM(字节顺序标记),理想情况下 BOM 不应与 utf-8 编码一起出现,因为 java 无法解析此类异常并给出上述错误 (2认同)

Joh*_*iss 6

在XML前导码()之前肯定有一些奇怪的字符(例如BOM)或一些空格<?xml ...?>

  • 在我的情况下,我错误地使用java样式注释在xml中添加了注释.例如,我没有使用<! - - >而是使用了/**/remove来修复相同的内容 (2认同)