#xml #sax #java
День добрый! Граждане, посоветуйте пожалуйста как быстрее всего запарсить большой XML, который приходит через URLConnection, то есть из веб, то есть идет из такого потока: BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); Я так понимаю, надо выбрать между SaxParser и обычной ручной обработкой каждой строки XML на предмет содержания ею тэга. Что быстрее? Потянет ли SaxParser поток, где будет пара сотен тысяч тэгов? Каков предел такой системы загрузки XML по скорости и объему?
Ответы
Ответ 1
как быстрее всего запарсить большой XML Если тут идёт о скорости работы конечного приложения, а не скорости программирования, то может у обычной ручной обработки будет какой-нибудь выигрыш в скорости работы (если узкое место - не чтение данных, а обработка). Но тут всё зависит от специфики задачи. По поводу SAX - sax parser обрыботает любой объём данных. Возможно, в некоторых случаях будет быстрее StAX (чем SAX). К примеру, нужно узнать, есть ли слово "ыыы" в документе? Оно нашлось в середине документа. Остальную часть документа можно и не читать даже. SAX, будет читать.Ответ 2
SaxParser как раз и создан для того что бы читать из потока. Он не загружает весь хмл в память что бы прочитать определенный кусок xml ...
Комментариев нет:
Отправить комментарий