Manipulando arquivos XML grandes

[ad#texto]

Realizar intercambio de dados com XML é algo bem funcional, se deixarmos de utilizar DOM e adotarmos o VTD, ainda mais se estamos falando de arquivos XML grandes, com tamanhos que facilmente ultrapassam os GB´s.

Utilizando VTD temos suporte para processar arquivos XML de até 256 GB, desde que utilizando uma JVM de 64 bits (se a JVM for de 32 bits este tamanho cai um pouco), para isso temos que utilizar classes específicas para trabalharmos o tipo de mapeamento de memória que o VTD (Java) deverá fazer ao processar um arquivo XML deste tamanho.

As classes destinadas ao processamento de XML grandes utilizam um mapeamento de memória específico que mapeia fragmentos do XML em memória, fazendo esta troca de alocação durante toda a leitura do arquivo XML.

Veja um exemplo com mapeamento de memória:

public static void second_read() throws Exception{
 VTDGenHuge vg = new VTDGenHuge();

 if (vg.parseFile("teste.xml",true,VTDGenHuge.MEM_MAPPED)){
  VTDNavHuge vn = vg.getNav();
  System.out.println("Texto: ===>" + vn.toString(vn.getText()));
 }
}

Agora veja o mesmo exemplo com o modo “in-memory”, este método é o mesmo utilizado na forma tradicional de execução do VTD:

public static void second_read() throws Exception{
 VTDGenHuge vg = new VTDGenHuge();

 if (vg.parseFile("teste.xml",true,VTDGenHuge.IN_MEMORY)){
  VTDNavHuge vn = vg.getNav();
  System.out.println("Texto  ===>" + vn.toString(vn.getText()));
 }
}

Petter Rafael

Desenvolvedor Web atua com as tecnologias Java e PHP apoiadas pelos bancos de dados Oracle e MySQL. Além dos ambientes de desenvolvimento acima possuiu amplo conhecimento em servidores Apache/Tomcat, Photoshop, Arte & Foto, Flash e mais uma dezena de ferramentas e tecnologias emergentes. Atualmente colabora com o Viablog escrevendo sobre programação e tecnologia.
ViamaisBLOG
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.