【发布时间】:2012-07-19 14:47:30
【问题描述】:
我正在使用 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);
不要关注CountInputStream,它是一些特殊的类,就像常规输入流一样。
使用上面的代码,我有时会收到错误Fatal Error :1:1: Content is not allowed in prolog。我认为这与错误的 xml 格式有关,但我不知道如何修复它。
【问题讨论】:
-
嗯,据我了解,您所指的线程是关于从磁盘读取 xml。在我的情况下,我的磁盘上没有 xml,我只有一些字符串(链接),在我得到 xml 文件之前出现错误...
-
你能给出有问题的网址吗?最可能的原因是响应格式错误,因此查看一下会很有价值。
-
XML 文件的来源无关紧要,错误仍然相同。 “序言中不允许的内容”是指在文件/流的开头发现了其他内容,但不是 开始标记。如果它包含额外的空格,只需修剪它们,但通常这种错误是无法(以编程方式)恢复的。
-
读完你的cmets后,我手动检查了http页面的响应,它的xml格式确实很糟糕......抱歉打扰你了,我以前从来没有遇到过这样的问题......:\跨度>