Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

avarata

Ler TAG XML

Mensagens Recomendadas

avarata

Olá,

Estou a desenvolver um projecto que lê ficheiros XML. O ficheiro é gerado por um outro programa por isso não pode ser alterado.

A estrutura é deste género:

<FDDCell id="G94BsU2">
<attributes>
<OCNSActivation>false</OCNSActivation>
<activityFactorCcch>66</activityFactorCcch>
<antennaAngleOfOpening>63</antennaAngleOfOpening>
<appAltitude>0</appAltitude>
<appAltitudeUncertainty>47</appAltitudeUncertainty>
...

O que eu gostava de saber é se é possível ler o valor que está dentro dos <>?

Porque assim não precisava de estar a criar tags para cada um dos parâmetros.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
avarata

Eu queria ler mesmo o noma da tag, e a segui o atributo.

Estava a usar o SAX parser, mas não consegui encontrar nenhuma solução. Estou a tentar ler linha a linha e interpretar o texto.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
aladino77

Veja o meu exemplo http://www.portugal-a-programar.pt/topic/59982-ler-xml-file/

Para ler atributos

public void startElement(String uri, String localName, String qName,
   Attributes attributes) throws SAXException {

 // <FDDCell id="G94BsU2">
 if (qName.equalsIgnoreCase("FDDCell")) {
   tagTurma = true;
   fddCell = new FDDCell();
   fddcell.id = attributes.getValue("id");
 }
}

Editado por Rui Carlos
Formatação do código.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
avarata

O que eu queria fazer era evitar ter que identificar a tag.

Nesse caso que apresentaste tens qName.equalIgnoreCase("FDDCell"). Eu queria evitar ter que escrever no código todas as minhas tags, porque são várias centenas.

A minha ideia era que ele lesse automaticamente o que está dentro das <> e fosse possível ter acesso a isso.

Estou a pensar num método mais rudimentar, ler linha a linha como se fosse um ficheiro de texto.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
avarata

O nome da tag está em qName (e localName). Não precisas de o comparar com nada.

Podes pegar no valor e colocá-lo num HashMap, por exemplo.

Boa! Grande ajuda, assim já consigo fazer tudo o que quero. Vou experimentar.

Desde já obrigado a todos!!!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
avarata

[Edit:]

Mais uma questão. É possível saber quando se chega ao respectivo </tag>?

Já consegui, no endElement imprimo a tag.

Editado por avarata

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
avarata

Olá,

É possível verificar qual o tipo do meu conteúdo?

<Contacto>
<Nome>Alberto</Nome>
<Idade><15/Idade>
<email>false</email>
</Contacto>

Isto é, no código apresentado ao ler o conteúdo do Nome automaticamente verificar que é uma String, e ao ler o conteúdo da Idade automaticamente verificar que é um Int.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.