Estou precisando parsear uma porrada de XMLs que seguem um DTDzinho bem básico, e estou seriamente pensando em usar o Jakarta Commons-Digester pra isso, mas antes de sair me sujando de código, eu queria saber se tem mais alguma alternativa boa por aí, já que as únicas que eu considerei foram usar SAX e DOM (do Xerces). Qual a sua maneira favorita de ler XML?
Sei que você não gosta muito dele, Carlos, mas eu uso JDOM. Aliás, mesmo que seja muito mais “caro” trabalhar com DOM (já que a árvore inteira vai para a memória), é muito mais prático. Trabalhar com verificações usando DTD com JDOM também é muito fácil.
No meu caso, parsear usando uma árvore (DOM) ou eventos (SAX) não é problema, já que os arquivos são pequenos, e o que eu queria mesmo era programar o mínimo possível… idéias?
Já que a idéia é programar o mínimo possível, então use JDOM (já que não tem problema com uso de memória). No site da Oracle Magazine (http://otn.oracle.com/oramag) tem um tutorial bem interessante de como usar o JDOM.
[/url]
Bom, dependendo do caso as vezes eh ate mais simples usar SAX ao inves de DOM. Por exemplo, eh um processamento simples, num documento sem muitas variacoes de tags… SAX acaba sendo rapido de implementar e muito simples de entender tambem ( ja que fica algo mais “procedural” ).
[quote=“cv”]Estou precisando parsear uma porrada de XMLs que seguem um DTDzinho bem básico, e estou seriamente pensando em usar o Jakarta Commons-Digester pra isso, mas antes de sair me sujando de código, eu queria saber se tem mais alguma alternativa boa por aí, já que as únicas que eu considerei foram usar SAX e DOM (do Xerces). Qual a sua maneira favorita de ler XML?
[]'s
-cv[/quote]
Minha maneira favorita de ler XML é através do JDOM, pois deixa o código bem limpo
O commons-digester é muito util quando voce quer mapear um xml para objetos já existentes do teu sistema ou realizar diretamente o processamento dele sem criar primeiro uma representação intermediaria.
Porem se voce ta saindo do zero, uma excelente opção é o castor, voce alimenta com um Xml Schema e ele te produz um jogo de classes que realizam parsing, validação e serialização com voce escrevendo 1 linha para cada operação. Ele gera um JavaBean por tipo do schema.
Sei que o Tópico é antigo, mas caso alguém o leia, tente usar o framework JColtrane. Ele usa o SAX por baixo (portanto não consome tanta memória como o JDOM) e oferece algumas facilidade pra não ter que programar tudo na mão. Basta usar anotações e pra XML simples vc não tem praticamente nenhum trabalho.