|
Как остановить SAX парсер?
|
|||
---|---|---|---|
#18+
Здравствуйте. Разбираю очень большие XML-файлы, поэтому SAX. Использую libxml2 из C++ программы. Никак не могу понять, как остановить этот парсер. Нашел такое сообщение: http://mail.gnome.org/archives/xml/2002-August/msg00236.html , но перевести его нельзя. Exceptions из callbacks не ловятся, да я и не хочу мешать. Мне интересен механизм библиотеки. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2008, 13:22 |
|
Как остановить SAX парсер?
|
|||
---|---|---|---|
#18+
Не знаю, как на счет libxml, а в msxml callback - это методы интерфейса. Поэтому достаточно в методе возвратить ошибочный код завершения. Например E_ABORT С уважением, Vasilisk ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2008, 00:35 |
|
Как остановить SAX парсер?
|
|||
---|---|---|---|
#18+
Здесь void callbacks. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2008, 09:45 |
|
Как остановить SAX парсер?
|
|||
---|---|---|---|
#18+
возможно, можно что-то сделать с экземпляром парсера. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2008, 11:27 |
|
Как остановить SAX парсер?
|
|||
---|---|---|---|
#18+
Есть xmlStopParser, но как получить парсер? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2008, 12:34 |
|
Как остановить SAX парсер?
|
|||
---|---|---|---|
#18+
судя по докам, контекст в хэндлеры передаётся. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2008, 13:30 |
|
Как остановить SAX парсер?
|
|||
---|---|---|---|
#18+
В callbacks передается пользовательский контекст(void*). Т.е. та структура данных, которую ты хочешь. Как наколдовать xmlParserCtxtPtr второй день понять не могу. И в поиске тишина. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2008, 13:56 |
|
Как остановить SAX парсер?
|
|||
---|---|---|---|
#18+
во , как ты парсер создаёшь? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2008, 15:28 |
|
Как остановить SAX парсер?
|
|||
---|---|---|---|
#18+
Парсер не создавал. Использую xmlSAXUserParseMemory. Что такое push mode не знаю. Сейчас попробую xmlCreatePushParserCtxt. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2008, 09:41 |
|
Как остановить SAX парсер?
|
|||
---|---|---|---|
#18+
Ещё можно тупо глянуть, как реализован xmlSAXUserParseMemory. Оказывается, контекст – вещь универсальная и способна связать потоки/память с sax/dom в любых комбинациях. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2008, 11:40 |
|
Как остановить SAX парсер?
|
|||
---|---|---|---|
#18+
Глядя в исходники, xmlSAXUserParseMemory создает тот самый парсер, который можно остановить. Но ни одна ф-я не возвращает его. Буду писать в mail-list. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2008, 17:44 |
|
Как остановить SAX парсер?
|
|||
---|---|---|---|
#18+
ну ты даёшь. Кто кого не возвращает? Что не понятно в xmlSAXUserParseMemory? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2008, 11:18 |
|
Как остановить SAX парсер?
|
|||
---|---|---|---|
#18+
Она не возвращает ctxt = xmlCreateMemoryParserCtxt(buffer, size); =) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2008, 11:33 |
|
Как остановить SAX парсер?
|
|||
---|---|---|---|
#18+
Кто она? Кого не возвращает xmlCreateMemoryParserCtxt? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2008, 11:48 |
|
Как остановить SAX парсер?
|
|||
---|---|---|---|
#18+
И какой же сакральный смысл имеет здесь знак равно? Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2008, 11:49 |
|
Как остановить SAX парсер?
|
|||
---|---|---|---|
#18+
Наверное, я понял твою мысль. =) Когда сам придумал. =) Вместо вызова xmlSAXUserParseMemory() буду использовать её код. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2008, 11:50 |
|
Как остановить SAX парсер?
|
|||
---|---|---|---|
#18+
Это знак присвоить. Оказалось, xmlCreateMemoryParserCtxt() внутренняя ф-я библиотеки. Остается push mode. Только он мне совсем не подходит, так как работаю с огромными файлами в памяти. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2008, 12:18 |
|
Как остановить SAX парсер?
|
|||
---|---|---|---|
#18+
а что, у него с этим проблемы? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2008, 13:37 |
|
|
start [/forum/topic.php?fid=14&fpage=47&tid=1333693]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 325ms |
total: | 465ms |
0 / 0 |