Manipulando XML com Java de maneira otimizada
[ad#texto]
Trabalhar com XML pode ser um tanto complicado, não falando da técnica em si, mas do que podemos encontrar no decorrer de um projeto, supondo que pela necessidade você precise utilizar DOM e não SAX, em um arquivo XML superior a 50 MB, pode ter certeza que terá problemas de performance, afinal a capacidade de atravessar a árvore do XML que o DOM possui tem um impacto significativo muito negativo quando falamos de performance.
Mas nem tudo são problemas, o pessoal da Ximpleware desenvolveu uma solução robusta, veloz e que permite uma semântica de trabalho muito próxima ao DOM e além de rápido é possível trabalhar com um XML de até 254 GB, desde que em um ambiente de 64 bits, tanto o sistema operacional quanto a JVM, sim, o Ximpleware está disponível para Java e C.
O VTD trabalha utilizando bytes, o que facilita devido ao uso de tokens para identificar os nodos do XML, resultando na possibilidade de se trabalhar com xPath apontando seletivamente para qual nodo for necessário.
Veja um exemplo para abrirmos um arquivo XML e iterarmos sob o nodo ROOT utilizando Java:
VTDGen vg = new VTDGen();
AutoPilot ap = new AutoPilot();
vg.setDoc(toByteArray("D:\\teste.xml") );
vg.parse(true);
VTDNav vnPrincipal = vg.getNav();
ap.selectXPath("//root");
ap.bind(vnPrincipal);
ap.selectElement("*");
while(ap.iterate()){
//sua iteração aqui
}
Muito simples e veloz, muito veloz.