Я обычно использую поддержку XSLT в JDK (JDK 7) для преобразований XSLT. Недавно я столкнулся с довольно большим XML-документом, и применение XSLT-преобразований к этому (даже очень базовому) приводит к тому, что большая часть памяти используется.Инкрементные/потоковые преобразования XSLT?
Я старался сделать все свои потоки обработки, но кажется, что движок XSLT в JDK (который, как представляется, модифицированный Xalan) всегда создает DOM в памяти в первую очередь. Очевидно, это не то, что я хочу.
Теперь я узнал, что Xalan, который доступен отдельно (2.7.1 из 2007!), Имеет API для выполнения инкрементных преобразований. Поэтому, хотя это работает, я действительно хочу, чтобы мой код запускался на складе JDK, не сообщая пользователю играть в какую-либо одобренную папку.
Каков наилучший способ сделать инкрементные преобразования XSLT в Java, чтобы мой код был совместим с немодифицированными/запатентованными установками JDK?
обновление: Этот недавно вопрос тесно связан: What is the Most Efficient Java-Based streaming XSLT Processor?
Пробуйте эту ссылку - http://www.devx.com/xml/Article/34677/1954 - см. Раздел «Итерация 2: Преобразование JAXP XSLT в Divide-and-Conquer» – kjp