Jsoup не может прочитать файл возврата xml

У меня проблемы с Jsoup. Я пытаюсь получить XML-файл из Open Movie Database, используя их API в своем бета-приложении Android. В их документации по API говорится, что если тип возврата будет xml, просто введите «r =» и тип возвращаемого файла. Я тестировал некоторые запросы. Ниже одного из них:

Jsoup.connect(http://www.omdbapi.com/?i=tt1285016&r=xml).get(); 

Тестирование в браузере отлично работает. Но на андроиде нет. Любое исключение бросается. Если я не вставляю тип возвращаемого файла, он возвращает JSON. В этом случае я получаю данные. Чтобы убедиться, что проблема связана с xml-файлом. У меня есть teste с API MusicBrainz. По умолчанию он возвращает XML. Для моего удивления прекрасно работает.

В чем проблема? Возвращаемый тип открытой базы данных фильмов Jsoup?

Основное внимание Jsoup уделяется работе с HTML и обеспечению того, чтобы возвращаемый документ был хорошо сформированным HTML. Поэтому по умолчанию он всегда будет обрабатывать ввод как HTML и нормализовать документ. Вот почему вы получаете DOM, например <html><head></head>...<xml>...</html> .

Если вы знаете ввод, который вы передаете, это на самом деле XML, вы можете настроить Jsoup для анализа в режиме XML. В этом случае он не будет нормализовать HTML DOM, и он не будет применять какие-либо спецификации спецификации HTML.

В качестве примера:

 String url = "http://www.omdbapi.com/?i=tt1285016&r=xml"; Document doc = Jsoup.connect(url) .parser(Parser.xmlParser()) .get(); System.out.println(doc); 

Сравните этот вывод с конфигурацией Parser.xmlParser() и без Parser.xmlParser() :

В режиме XML:

 <?xml version="1.0" encoding="UTF-8"?> <root response="True"> <movie title="The Social Network" year="2010" {snip} /> </root> 

В режиме HTML:

 <!--?xml version="1.0" encoding="UTF-8"?--> <html> <head></head> <body> <root response="True"> <movie title="The Social Network" {snip} /> </root> </body> </html> 

Нашел проблему. Значения всегда были там. Я не знаю, почему, но возвращаемый тип – это html-файл с включенными xml-тегами. Печать значений в Logcat возвращает html-теги html, head, body и только после этого XML.