Como pegar a linha de um elemento XML

3 respostas
A

Bom, preciso validar a estrutura de um documento XML, esta validação já fiz. Porém quero que ao encontrar um erro em algum elemento do XML, pegar em qual linha do documento isto ocorreu e acrescentar na minha mensagem de erro. Algo assim: “error na linha 11 do XML”.
Estive analisando a API DOM do java, para tentar encontrar algum objeto/método que fizesse isso, mas não achei nada parecido… alguém sabe como posso fazer? estou usando a API DOM mesmo.
Obrigado pela atenção desde já.

3 Respostas

A

Por favor ninguém tem uma dica? a única idéia que veio em mente… foi de que eu tinha que percorrer este arquivo na “mao” e comparando linha a linha… ou algo assim mas não sei ainda…

por favor?

L

Olha, a ideia que tenho não sei se é aplicavel ao seu projeto, mas de qualquer jeito:

Esse xml vai ser salvo no hd ?

se sim, voce podeira abrir esse xml e trabalhar com ele no java. (como abrir o xml: http://guj.com.br/articles/13) depois na hora de ler o arquivo inteiro:
(obs leia o tutorial que voce vai entender a manipular o arquivo)

String aux = new String();
int contador = 0;
while((aux = leitor.readLine()) != null){
   // ai aqui dentro voce trabalha linha a linha do seu xml até achar o erro que voce quer
   // e bota um contador aqui e cria uma exception que recebe esse contador.
   //dai pronto, voce gera a menssagem de erro da forma como voce quer, mostrando o numero da linha e algo 
   // a mais que voce queira.
   contador = contador +1;
}

mas enfim, voce pode utilizar isso sem ter gravado no disco, mas voce vai ter que percorrer do mesmo jeito teu xml inteiro.
enfim, espero ter ajudado.
Salute. 8)

A

Então… para eu fazer a validação deste XML, eu estou utilizando a API DOM do java… e pego todas as tags deste docuemnto que eu quero validar… eu não o “percorro” linha a linha como vc mencionou. Não sei se seria uma boa idéia, e se isso seria tão fácil para mim implementar em meu caso, mas de qualquer forma obrigado pela sugestão.
Basicamente eu queria localizar a linha onde está o nodo de um arquivo XML, como fazer isso?

Criado 4 de janeiro de 2011
Ultima resposta 7 de jan. de 2011
Respostas 3
Participantes 2