Подтвердить что ты не робот

Неустранимая ошибка: 1:1: содержимое не допускается в прологе

Я использую Java, и я пытаюсь получить XML-документ с некоторой ссылки http. Код, который я использую:

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, но я понятия не имею, как его исправить.

4b9b3361

Ответ 1

Я возвращаю свой комментарий к ответу, поэтому его можно принять, и этот вопрос больше не остается без ответа.

Наиболее вероятной причиной этого является некорректный ответ, который включает символы перед начальным <?xml …>. Поэтому, пожалуйста, взгляните на документ, переданный по HTTP, и исправьте это на стороне сервера.

Ответ 2

Есть некоторые странные символы (например, спецификация) или некоторые пробелы перед преамбулой XML (<?xml ...?>)?

Ответ 3

Кто-то должен отметить комментарий Йоханнеса Вейса как ответ на этот вопрос. Именно поэтому XML-документы нельзя просто загружать в класс DOM Document.

http://en.wikipedia.org/wiki/Byte_order_mark