как исправить исключение парсера XMLпролог должен быть в начале документа - PullRequest
0 голосов
/ 23 августа 2010

Я использую следующий код для получения XML-документа (по JDOM в Java):

SAXBuilder builder = new SAXBuilder();
Document doc= builder.build(new URL("http://www.sasatuan.com/api/api.php"));

и получаю исключение:

org.jdom.input.JDOMParseException: Error in building:
 http://www.sasatuan.com/api/api.php:1: <?xml ... ?> occurs after content.  The
<?xml ... ?> prolog must be at the document start.: http://www.sasatuan.com/api/
api.php:1: <?xml ... ?> occurs after content.  The <?xml ... ?> prolog must be a
t the document start.
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:473)
        ...

Я набираю этот URL http://www.sasatuan.com/api/api.phpв IE все будет хорошо, но в Firefox или Chrome такая же ошибка.

этот заголовок xml не в начале документа, поэтому jdom не может его прочитать.

я думаю, что trim () XML-содержимое перед сборкой может исправить эту проблему, я хочу знать, как это сделать.

спасибо за помощь:)

1 Ответ

1 голос
/ 23 августа 2010

Есть ли у вас другие файлы XML, которые так же повреждены, что вам нужно прочитать?Если нет, я бы лично попытался связаться с владельцем сайта.Этот XML просто недопустим - и, вероятно, его будет легко исправить, что поможет всем , а не только вам.

Если это не понравится, возможно, это будетпроще всего загрузить контент в виде строки, обрезать его в памяти, а затем загрузить.Вы могли бы бездельничать, пытаясь пропустить соответствующие биты входного потока, но это, скорее всего, будет нелегко.

...