Play Framework 2.0 BodyParser -push-анализ XML-потоков

Я чувствую себя не в своей тарелке, задавая этот вопрос, поскольку, несмотря на чтение официальных документов и ресурсов, связанных с этими вопросами :

, Как понять `Iteratee `в play2?

Не могу понять Iteratee, Enumerator, Enumeratee в Play 2.0

... Я все еще довольно туманно отношусь к итерациям, перечислителям и реактивной модели Play 2.0 в целом. Но в любом случае, я хотел бы настроить веб-сервис, который позволит мне загружать большие файлы XML (>100 МБ ), выбирать определенные определенные (не -чередующиеся )NodeSeq, обрабатывать их, и передать результаты обратно клиенту.

Я полагаю, что первое, что мне нужно сделать, это написать BodyParser, который берет фрагменты байтов, передает их анализатору XML и выдает поток NodeSeqs, которые я хочу, скажем ..., в ленивой манере.

Может ли кто-нибудь предложить какие-либо рекомендации и/или примеры, иллюстрирующие, как это можно сделать?

Обновление :Больше фона:-

Мой XML на самом деле является документом Solr add, поэтому он выглядит как:


    
        Some Entity
        Blah blah...
       ...
    
   ...

Я хочу обрабатывать каждый в потоковом режиме, поэтому моему синтаксическому анализатору, очевидно, придется ждать, пока он не достигнет начального события ,буферизовать все до эквивалентного события завершения и выдать NodeSeq завершенного элемента, а затем очистить его буфер.

Как это будет работать с Play BodyParser, я не совсем уверен. Больше обновлений, если я смогу уточнить, что я хочу сделать!

Хотя весь XML-файл большой, каждый элемент сам по себе довольно мал, хотя мне, очевидно, пришлось бы проверять, не превышает ли байтовый буфер определенный размер.

5
задан Community 23 May 2017 в 10:34
поделиться