Ler arquivo xml

Ola Pessoal!

Como faço para ler um arquivo xml e jogar suas informações na tela?

Desde já agradeço

No fórum isso já foi bastante discutido.

Aconselho ler sobre XStream, JDOM e por ai vai.

Olha vou postar aqui um classe que criei especifica para o meu problema, ela le todo o arquivo XML recursivamente e vai preenchendo uma lista com os elementos encontrados, me deu um trabalhão pra fazer. vai ate o www.jdom.org e baixe a API deles adicione no seu projeto, depois tente compilar

package leitura;

import principal.ItemXml;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;


/**
 * Classe responsavel por ler um arquivo XML especifico
 * @author maiko
 */
public class LeitorXML {

    private File arquivo = null;
    private SAXBuilder saxBuilder;
    private Document documento;
    private Vector lista;
    private static final String POSICAO_TAMANHO = "posicao_tamanho";
    private static final String CONFIDENCIAL = "confidencial";
    private static final String  CARTAO = "cartao";

    /**
     * Instancia a classe, e um arquivo XML é criado a partir do nome passado
     * @param caminhoArquivo
     * @throws org.jdom.JDOMException
     * @throws java.io.IOException
     */
    public LeitorXML(String caminhoArquivo) throws JDOMException, IOException {
        saxBuilder = new SAXBuilder();
        carregarNovoArquivo(caminhoArquivo);
        lista = new Vector();
    }

    /**
     * Instancia a classe, apartir de um arquivo ja criado
     * @param aArquivo
     * @throws org.jdom.JDOMException
     * @throws java.io.IOException
     */
    public LeitorXML(File aArquivo) throws JDOMException, IOException {
        this.arquivo = aArquivo;
        saxBuilder = new SAXBuilder();
        lista = new Vector();
        documento = saxBuilder.build(arquivo);
    }

    /**
     * Metodo utilizado para substituir o arquivo criado/passado anteriormente
     * @param caminhoArquivo
     * @throws org.jdom.JDOMException
     * @throws java.io.IOException
     */
    public void carregarNovoArquivo(String caminhoArquivo) throws JDOMException,
            IOException {
        arquivo = new File(caminhoArquivo);
        documento = saxBuilder.build(arquivo);
    }

    /**
     * Obtem o principal elemento do documento
     * @return o elemento
     */
    public Element getElementoRoot() {
        return documento.getRootElement();
    }

    /**
     * Preenche a lista de maneira ordenada e cronologica a partir do arquivo XML lido,
     * este metodo é recursivo
     * @param nodoPai a partir de qual nodo é pra começar a ler
     */    
    private void percorreArvore(Element nodoPai) {
        // Verifica se o nodo passado possui filhos
        if (nodoPai.getChildren().size() > 0) {
            // instancia uma lista a partir de seus filhos
            List filhos = nodoPai.getChildren();
            Iterator i = filhos.iterator();
            // enquanto houver filhos
            while (i.hasNext()) {
                // O filho é tratado
                Element nodoFilho = (Element) i.next();
                // é pego seu nome, nome do pai, e determinado atributos para controle
                ItemXml item = new ItemXml(null, nodoFilho.getName(),
                        nodoFilho.getParentElement().getName(),
                        nodoFilho.getAttributeValue(POSICAO_TAMANHO),
                        nodoFilho.getAttributeValue(CONFIDENCIAL),
                        nodoFilho.getAttributeValue(CARTAO));
                // verifica se o nodo filho é um pai
                if (nodoFilho.getChildren().size() > 0) {
                    // se for, ele é adicionado com o valor null
                    lista.add(item);
                    // e é chamado o mesmo metodo para percorrer cada um de seus filhos
                    percorreArvore(nodoFilho);
                } else {
                    // caso ele nao possua filhos entao é pego seu valor
                    item.valor = nodoFilho.getValue();
                    // e é adiciona a lista
                    lista.add(item);
                }
            }
        }
    }

    /**
     * Obtem os elementos de determinado nodo
     * @param nodoPrincipal
     * @return uma lista com os elementos
     */
    public Vector getElementos(Element nodoPrincipal) {
        lista.clear();
        percorreArvore(nodoPrincipal);
        return lista;
    }

    /**
     * Obtem os elementos a partir do elemento root do documento.
     * @return Vector Lista representando todos os atributos do XML
     */
    public Vector getElementos() {
        lista.clear();
        percorreArvore(getElementoRoot());
        return lista;
    }
}

Como eu disse isso é uma aplicacao especifica que procura por determinados atributos dentro da classe, mas esta parte você pode pular e analisar apenas a recursividade e a leitura do XML em si, que é bem fácil de se fazer.

Aqui mesmo no forum tem algun tutoriais basicos sobre isto.

abraço.