Название: SAX-анализатор XML-документа Отправлено: BigHom от Октябрь 29, 2012, 07:16 Такая проблема , есть файл в котором несколько документов начинающихся со строчками
<?xml version="1.0" encoding="koi8-r"?> при вызове SAX-анализатора обрабатывается только 1-й документ из файла , остальные документы как бы игнорируются. Вопрос: если способ последовательно анализировать документы, находящиеся в одном файле иной , чем в ручную поиск по файлу данных строк : <?xml version="1.0" encoding="koi8-r"?> сравнением , записью в отдельный файл и вызова только тогда SAX-анализатора? Название: Re: SAX-анализатор XML-документа Отправлено: Bepec от Октябрь 29, 2012, 07:27 Эмм.. Прочитать в память, разделить на 2 строки, дать обе SAX парсеру?
По идее у него логика работы правильная. Это у вас файл неправильный получается. :) Название: Re: SAX-анализатор XML-документа Отправлено: BigHom от Октябрь 29, 2012, 07:58 Изначально в файле несколько документов , вопрос - как "разделить на две строки"? То есть из файла считать в строку и в строке искать начало каждого документа? Выделяя каждый документ в другую, отдельную строку , чтобы потом дать на обработку SAX-анализатору?
Если подробнее , то от сервера получаю информацию и записываю в файл, а потом смотрю что там. И получается , когда там несколько документов принято, то вызывая SAX-анализатор, видится только первый принятый документ , а остальные не видятся так как встречается закрытие документа и как бы анализатор дальше не смотрит...(на сколько я понял) Название: Re: SAX-анализатор XML-документа Отправлено: Bepec от Октябрь 29, 2012, 08:24 Это же логично. SAX анализирует промежуток между началом и концом xml. То, что у вас в файле несколько файлов xml сжаты, значит вам надо ручками делить на строки.
Или же дописать своего наследника SAX парсера.(но руками помоему проще). Простейший код поиска Код: QString receiveContent; // принятые данные |