Re: Libxml2, SAX-парсер
От: . Великобритания  
Дата: 09.02.08 18:35
Оценка: 7 (1)
SergH wrote:

> Пытаюсь работать с сабжем, два вопроса:

> — как изнутри остановить процесс разбора? Например, накопилось некоторое
> количество логических ошибок, парсить дальше смысла нет.
Сам не делал, но если понимаю правильно, то где-то в районе ctxt->instate = XML_PARSER_EOF. Посмотри исходники...

> — как использовать xmlCreateIOParserCtxt? Создать-то я его создал, но

> как потом запустить процесс парсинга? Сейчас написал через
> xmlCreatePushParserCtxt/xmlParseChunk, но это не так красиво
из моего кода:
xmlParserCtxtPtr ctx = xmlCreateFileParserCtxt(pageFile.c_str());// тут и xmlCreateIOParserCtxt юзать можно.
ctx->dictNames = 1;
ctx->sax->startDocument = NULL;
ctx->sax->endDocument = NULL;
ctx->sax->startElementNs = pageDocStartElementNs;
ctx->sax->endElementNs = pageDocEndElementNs;
ctx->sax->comment = NULL;
xmlParseDocument(ctx);
xmlFreeParserCtxt(ctx);
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Libxml2, SAX-парсер
От: SergH Россия  
Дата: 04.02.08 10:36
Оценка:
Привет!

Пытаюсь работать с сабжем, два вопроса:
— как изнутри остановить процесс разбора? Например, накопилось некоторое количество логических ошибок, парсить дальше смысла нет.
— как использовать xmlCreateIOParserCtxt? Создать-то я его создал, но как потом запустить процесс парсинга? Сейчас написал через xmlCreatePushParserCtxt/xmlParseChunk, но это не так красиво
Делай что должно, и будь что будет
Re[2]: Libxml2, SAX-парсер
От: SergH Россия  
Дата: 09.02.08 18:47
Оценка:
Здравствуйте, ., Вы писали:

Спасибо за ответ, правда, задача потеряла актуальность — перешёл на Poco (с точки зрения XML — недоделанный клон Xerces, но зато там есть работа с БД и ещё несколько приятных мелочей).

.>Сам не делал, но если понимаю правильно, то где-то в районе ctxt->instate = XML_PARSER_EOF. Посмотри исходники...


мм.. Т.е. в user-data мне надо тащить этот хендл? Ну, вариант, конечно, но с исключениями проще.

.>из моего кода:

.>
.>xmlParserCtxtPtr ctx = xmlCreateFileParserCtxt(pageFile.c_str());// тут и xmlCreateIOParserCtxt юзать можно.
ctx->>dictNames = 1;
ctx->>sax->startDocument = NULL;
ctx->>sax->endDocument = NULL;
ctx->>sax->startElementNs = pageDocStartElementNs;
ctx->>sax->endElementNs = pageDocEndElementNs;
ctx->>sax->comment = NULL;
.>xmlParseDocument(ctx);
.>xmlFreeParserCtxt(ctx);
.>


вызов xmlParseDocument? Я думал это только для DOM-а..
Делай что должно, и будь что будет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.