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()));
 }
}
Tags:,
Petter Rafael
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.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 316 outros assinantes

Busca

julho 2022
D S T Q Q S S
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Categorias