Кто-нибудь знает, возможно ли использовать XMLSlurper таким образом, чтобы отдельные поддеревья можно было извлечь из очень большого XML-документа и обработать по отдельности?
Представьте, что у вас огромный XML-каналсодержащий корневой элемент, имеющий тысячи прямых дочерних элементов, которые вы можете обрабатывать по отдельности.Очевидно, что чтение всего документа в память - нет-нет, но, поскольку каждый дочерний элемент корня сам по себе имеет скромный размер, было бы неплохо выполнить потоковую передачу по документу, но поочередно применять правильность XMLSlurper к каждому дочернему элементу.Поскольку каждый дочерний элемент обрабатывается, сборщик мусора может очищать память, используемую для его обработки.Таким образом, мы получаем простоту XMLSlurper (такой краткий синтаксис) с низким объемом памяти для потоковой передачи (например, SAX).
Мне было бы интересно узнать, есть ли у кого-нибудь идеи по этому поводу и / или есть лиВы сами сталкивались с этим требованием.