Ler/Processar XML dentro da Servlet

Ola,

Preciso ler um conjunto de arquivos XML gerados por outra aplicacao dentro da minha Servlet. Nunca usei as APIs SAX ou DOM. No caso especifico em que eu apenas terei que ler estes XMLs, fazer algum tipo de processamento e gerar um HTML resposta na tela, qual API é mais pratica de usar: SAX ou DOM?

Preciso fazer algo do tipo:

  1. varrer XML
  2. transferir XML para algum objeto Collection “da vida”
  3. manipular o Colletion e gerar HTML de retorno

Eu vi exemplos no site da Sun com SAX e com DOM, e achei DOM mais facil de ser usado, mas nao sei se é a melhor solucao. Contudo, nao achei no tutorial um esquema para fazer em Servlet, nem qual JAR da API Java sao necessarios no subdir lib da minha aplicacao…

Olá

  1. SAX fornece um framework baseado em eventos que os parser usam para ler o documento sequencialmente que logo vai sendo decodificado. Não temos a visão global do documento.

  2. DOM lê o documento completo na memória e só depois inicia o trabalho de decodificação. Use DOM apenas se seu arquivo for pequeno.

Como vê será sua aplicação que responderá o que deverá ser usado.

Servlet é um programa como outro qualquer, não precisa de tutorial para explicar como uma coisa vai funcionar especificamente num servlet.

Um conselho: nunca coloque em sua aplicação um “esquema” que não entenda completamente. Melhor seria que realmente desse uma estudada em XML, XSLT, XPATH, e XSL. O uso destas tecnologias pode até mesmo evitar as etapas de transferir XML para algum objeto Collection “da vida”
e manipular o Colletion. Do XML poderia passar direto para o HTML.

[]s
Luca

Se o esquema for soh transformar XML em HTML, vc pode dar uma olhada no XSL. Eh uma linguagem que serve exatamente pra transformar XML em XML (lembrando que XHTML tambem eh um tipo de XML), ou XML em qualquer outro tipo de arquivo texto (hmm, por exemplo, HTML :)).

Senao, de uma lidinha sobre o Jakarta Commons-Digester, que eh bem pratico pro seu tipo de situacao (ler um XML sem ter saco pra mexer com SAX ou DOM). :smiley:

No meu caso, eu realmente preciso usar um “Collection da vida” pois precisarei processar a informacao, fazer um monte de logica e gerar um HTML que nao tem nada a ver exatamente com o XML, é gerado apos a logica toda.