Ler elementos de um XML

Estou tentando ler os elementos de um xml. Preciso fazer uma função recursiva que percorra todo o xml e mostre seus elementos.

Como posso fazer isso?

Meu xml:

<cat:CatalogoSistema xmlns:cat="http://nowhere.to.go">
  <cat:Sistema>Comercio</cat:Sistema>
  <cat:Elementos>
    <cat:Elemento>
      <cat:Nome>ComercioRaiz</cat:Nome>
      <cat:Tipo>ComercioRaiz</cat:Tipo>
      <cat:Elementos>
        <cat:Elemento>
          <cat:Nome>ComercioPadaria</cat:Nome>
          <cat:Tipo>ComercioPadaria</cat:Tipo>
          <cat:Elementos>
            <cat:Elemento>
              <cat:Nome>ComercioRaizPadariafarinha</cat:Nome>
              <cat:Tipo>java.math.BigDecimal</cat:Tipo>
            </cat:Elemento>
            <cat:Elemento>
              <cat:Nome>ComercioRaizPadariaoleo</cat:Nome>
              <cat:Tipo>java.math.BigDecimal</cat:Tipo>
            </cat:Elemento>
            <cat:Elemento>
              <cat:Nome>ComercioRaizPadariafermento</cat:Nome>
              <cat:Tipo>java.math.BigDecimal</cat:Tipo>
            </cat:Elemento>
            <cat:Elemento>
              <cat:Nome>ComercioRaizPadarialeiteDesnatado</cat:Nome>
              <cat:Tipo>java.math.BigDecimal</cat:Tipo>
            </cat:Elemento>
            <cat:Elemento>
              <cat:Nome>ComercioRaizPadariamacarrao</cat:Nome>
              <cat:Tipo>java.math.BigDecimal</cat:Tipo>
            </cat:Elemento>
            <cat:Elemento>
              <cat:Nome>ComercioRaizPadariaaguaMineral</cat:Nome>
              <cat:Tipo>java.math.BigDecimal</cat:Tipo>
            </cat:Elemento>
	    </cat:Elementos>
	 </cat:Elemento>
	</cat:Elementos>
    </cat:Elemento>
  </cat:Elementos>
</cat:CatalogoSistema>

Fiz dessa forma:

Elemento[] itemArray = pod.getCatalogoSistema().getElementos().getElementoArray();

for (int i=0; i<itemArray.length; i++){
System.out.println("\n"+itemArray[i].getNome());
System.out.println("\n"+itemArray[i].getTipo());
}

Mas só aparece:

ComercioRaiz

ComercioRaiz

Alguém pode me ajudar??

existem milhões de tópicos iguais a esse aqui no guj…

utilize o jdom ou xstream…

Pois é, mas nenhum dos tópicos que encontrei sanou minhas dúvidas.

Eu já estou utilizando o XmlBeans no projeto.

Livia, bom dia, veja algo sobre sax parse, nele vc desenvolve uma classe que vc vai verificando que tag ele esta, dai vc vai montando seu bean ou algo do tipo. O custo de trabalhar com DOM é muito grande.

[s]
baiano

Obrigada, estou procurando sim. Vou estudar.

Mas como preciso disso rápido alguém tem alguma dica com este problema??