Eu preciso de um framework que possa ler o mais rápido possível apenas 4 campos de um arquivo XML, atualmente uso o SAX, existe alguma forma mais eficiente de executar esta tarefa?
Qual framework mais eficiente para leitura de XML?
12 Respostas
Depende da extrutura do xml, como esta esse xml?
Não sei se é bem isso que você precisa saber, mas ele é pequeno, no máximo 3kb, e é bastante aninhado.
Dom4j é exelente.
Mas será que não é mais lento? pois ele necessita carregar tudo em memória, enquanto o SAX, passa por tudo e só pego o que interessa.
Se ele tem 3 KB é é bastante aninhado, qualquer coisa serve. Eu usaria XPath + DOM para obter as informações porque é mais fácil de manter, em vez de usar SAX, cuja manutenção é horrível.
Pesquise o StAX e o XStream
Se tem que usar XPath e DOM eu preferiria usar DOM4J da apache. Muito claro a implementação com DOM4J.
XMLBeans…
Muito fácil de usar e não tive problemas com performance ainda…
T+
Esta solução só é indicada para arquivos muito grandes (considerando a memória disponível); porque o código envolvido na implementação é muito mais complexo comparando com a utilização do XStream por exemplo, onde você lê a estrutura xml e obtem um bean com os tipos de dados previstos corretos.
Minha opinião…
flws
Então eu já testei 2 frameworks passados por vocês, o StaX, que na minha opinião é a mesma coisa que o SAX, com a única diferença que o SAX fica mais organizado na minha opinião, pois o “listener” que seria o DefaultHandler fica separado do restante do código e cada evento tem seu método. Quanto a desempenho não vi grandes vantagens.
E com relação ao XStream, ele joga tudo num Bean e depois que eu posso pegar estes dados, isso na minha opinião ficaria mais lento ainda, visto que só preciso de 4 campos. Além disso, tenho campos bastante aninhados, o que aumentaria bastante o número de classes.
Quanto ao DOM4J e xmlbeans acredito que sejam o mesmo caso de preencher beans, o que na minha opinião não seria uma boa solução.