Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / SAX, DOCTYPE / 18 сообщений из 18, страница 1 из 1
10.01.2012, 16:33:44
    #37607875
maksaimer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAX, DOCTYPE
Пытаюсь парсить ответ от сервера в виде xml, в ответе есть doctype
Код: xml
1.
<!DOCTYPE data PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">



Выдает ошибку
Код: java
1.
java.io.IOException: Server returned HTTP response code: 500 for URL: http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd



Может кто знает, как избавиться?
...
Рейтинг: 0 / 0
10.01.2012, 16:38:45
    #37607882
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAX, DOCTYPE
Что-то типа такого:
Код: java
1.
2.
3.
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(true);
SAXParser parser = factory.newSAXParser();
...
Рейтинг: 0 / 0
10.01.2012, 16:39:50
    #37607884
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAX, DOCTYPE
Если не поможет, надо смотреть в сторону
setFeature() у SAXParserFactory и узнать какая именно реализация парсера используется.
...
Рейтинг: 0 / 0
10.01.2012, 16:40:29
    #37607889
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAX, DOCTYPE
...
Рейтинг: 0 / 0
10.01.2012, 16:54:55
    #37607915
maksaimer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAX, DOCTYPE
Blazkowicz,
Я бы не писал сюда, если бы нашел ответ.

Пробовал я setValidation() и setFuture()....
...
Рейтинг: 0 / 0
10.01.2012, 17:08:26
    #37607930
maksaimer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAX, DOCTYPE
Насчет реализации, то я ничего дополнительного не ставил и не пользуюсь сторонними либами, что шло с sdk, тем и пользуюсь
...
Рейтинг: 0 / 0
10.01.2012, 17:22:58
    #37607963
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAX, DOCTYPE
maksaimerПробовал я setValidation() и setFuture()....
Это телепаты должны были сами понять из первого поста? Код показывайте.
...
Рейтинг: 0 / 0
10.01.2012, 17:23:22
    #37607967
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAX, DOCTYPE
maksaimerНасчет реализации, то я ничего дополнительного не ставил и не пользуюсь сторонними либами, что шло с sdk, тем и пользуюсь
...и stacktrace заодно.
...
Рейтинг: 0 / 0
10.01.2012, 17:32:19
    #37607985
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAX, DOCTYPE
Blazkowicz,

Да если даже просто попробовать через броузер:
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd

Не всегда откликается. Это проблема w3 по ходу. Уже натыкался.
...
Рейтинг: 0 / 0
10.01.2012, 17:34:51
    #37607988
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAX, DOCTYPE
Попробуйте скачать где-нить этот dtd и указать в заголовке на этот локальный дтд. Повторится ли ошибка.
...
Рейтинг: 0 / 0
10.01.2012, 17:41:37
    #37607995
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAX, DOCTYPE
Большой Синий КитДа если даже просто попробовать через броузер:
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
Не всегда откликается. Это проблема w3 по ходу. Уже натыкался.
w3 не виноваты в том что парсер не может проигнорировать эту ошибку. 24x7 доступ к DTD/XSD спекам нигде и никем не гарантируется.
...
Рейтинг: 0 / 0
10.01.2012, 17:42:14
    #37607996
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAX, DOCTYPE
Большой Синий КитПопробуйте скачать где-нить этот dtd и указать в заголовке на этот локальный дтд. Повторится ли ошибка.
Судя по тому что это XHTML, то автор контентом не владает. Он его просто парсит.
...
Рейтинг: 0 / 0
10.01.2012, 17:44:03
    #37607999
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAX, DOCTYPE
Blazkowicz,

Ну да, Вы правы. Но проблема, видимо, именно в том, что парсер не может выкачать дтд. И на этом зациклился.
...
Рейтинг: 0 / 0
10.01.2012, 17:48:16
    #37608004
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAX, DOCTYPE
Большой Синий КитНу да, Вы правы. Но проблема, видимо, именно в том, что парсер не может выкачать дтд. И на этом зациклился.
AFAIK, во всех парсерах это дело отключаемо. Но у автора почему-то не отключается. Проблема в этом.
И парснер не "зациклился" а тупо выкинул исключение при валидных входящих данных.
...
Рейтинг: 0 / 0
10.01.2012, 17:59:21
    #37608016
maksaimer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAX, DOCTYPE
Все как в мануалах, ничего необычного

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
URLConnection connection;
InputStream response = null;

connection = new URL(URL).openConnection();
connection.setRequestProperty("Accept-Charset", CHARSET);
response = connection.getInputStream()

SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
parser.parse(new InputSource(response), new MyHandler());



Ответ приходит в таком виде:

Код: xml
1.
2.
3.
4.
5.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE data PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<data>
...
</data>



Ругается так
Код: java
1.
java.io.IOException: Server returned HTTP response code: 500 for URL: http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd



Теперь думаю не надо будет быть телепатом.
...
Рейтинг: 0 / 0
10.01.2012, 18:05:23
    #37608020
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAX, DOCTYPE
maksaimerВсе как в мануалах, ничего необычного
Ни setValidating(), ни setFeature() не вижу.

maksaimerРугается так
stacktrace все же хорошо бы посмотреть, чтобы убедится что парсер родной.
...
Рейтинг: 0 / 0
10.01.2012, 18:18:20
    #37608035
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAX, DOCTYPE
setValidating(), действительно, не спасает (как я и подозревал в первом ответе). Вот эта магия помогла:

Код: java
1.
2.
3.
4.
factory.setFeature( "http://xml.org/sax/features/validation", false );
factory.setFeature( "http://apache.org/xml/features/validation/schema", false );
factory.setFeature( "http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false );
factory.setFeature( "http://apache.org/xml/features/nonvalidating/load-external-dtd", false );
...
Рейтинг: 0 / 0
10.01.2012, 20:40:37
    #37608227
maksaimer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAX, DOCTYPE
Blazkowicz,

ОО, спасибо большое :)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / SAX, DOCTYPE / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]