По TCP получаю порциями xml-документы. Если размер небольшой, то приходит одной порцией, а если данных много, то несколько посылок.
Сначала использовать DOM-парсер, но при увеличении размера блока данных уже не мог им парсить. Почитал, что SAX-парсер (QXmlSimpleReader) позволяет работать с xml, постеменно обрабатывая данные через метод parse(xmlInput, true) и parseContinue(). Но возникла некоторая сложность: как с помошью SAX-парсера прочитать несколько документов в одном файле.
Например, данные такие:
XML
<?xml version=\"1.0\" encoding=\"windows-1251\"?>
<tag>
<elem a=\"1\" b=\"2\"/>
</tag>
<?xml version=\"1.0\" encoding=\"windows-1251\"?>
<tag>
<elem2 d=\"101\" q=\"55.7\"/>
</tag>
При отправке такого блока QXmlSimpleReader получаю данные только первого блока. Как быть? Или все же придется переходить на QXmlStreamReader?