Login Registre-se
Extrair conteúdo da xml para objetos  XML
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Autor Mensagem
macario1983

JavaC Membro

Membro desde: 29/08/2013 12:47:32
Mensagens: 20
Offline

Bom dia

Estou com uma dúvida, estou começando a ver como implementar a extração de dados de determinada xml.

Eu estou com dificuldades para implementar usando o jaxb, parti para o xstream então achei melhor pedir a ajuda antes de ficar tentando...

Minha dúvida é, tem como eu pegar direto os dados do emitente da nota fiscal?

Eu apenas criei uma classe emitente e coloquei os atributos cnpj e nome...

Eu vi alguns posts falando que tem exemplo disso, mas não achei, alguém poderia me dizer aonde fica?

Queria extrair de fato alguns dados, como da nota, do emissor, de quem recebe e os endereços dos 2...

Obrigado
jeroqueiroz

Moderador
[Avatar]

Membro desde: 11/06/2011 09:45:18
Mensagens: 1348
Localização: Bahia
Offline

Verifica este post que postei o exemplo, caso tenha dúvida volta a postar:

http://www.javac.com.br/jc/posts/list/1615.page#6677

Jeremias Santos
Seguir no Twitter @jeroqueiroz
Blog Jeroqueiroz


Projeto NF-e, CT-e, CC-e? Comece Por Aqui!


Membros do fórum,

Usem a tag [code] e [/code] quando postarem Códigos Java e ou exemplos de XMLs.
Evitem tópicos duplicados.
Tópico solucionado? Edite o primeiro post e coloque [RESOLVIDO] no final do título.
Evitem reviver tópicos antigos.

O tópico resolveu seu problema? Seja gentil, comente e ou agradeça quem contribuiu com a solução.

Obrigado!
[Email] [WWW] [Yahoo!] [MSN]
macario1983

JavaC Membro

Membro desde: 29/08/2013 12:47:32
Mensagens: 20
Offline

jeroqueiroz wrote:Verifica este post que postei o exemplo, caso tenha dúvida volta a postar:

http://www.javac.com.br/jc/posts/list/1615.page#6677


Olá, agradeço sua ajuda...

Peguei seu código usando o jaxb

Meu main ficou assim


E minha classe modelo que vai armazenar os valores achados na nfe é esta



Ao executar ele informa que há 2 elementos com a mesma identificação...
Então queria saber, o que falta para dar certo neste exemplo...
Quero pegar os dados do elemento do emitente

Lembrando que vou depois criar as classes com dados da nota, emitente, destinatário e endereço...

Obrigado
jeroqueiroz

Moderador
[Avatar]

Membro desde: 11/06/2011 09:45:18
Mensagens: 1348
Localização: Bahia
Offline

posta a msg de erro para que possa verificar.

Jeremias Santos
Seguir no Twitter @jeroqueiroz
Blog Jeroqueiroz


Projeto NF-e, CT-e, CC-e? Comece Por Aqui!


Membros do fórum,

Usem a tag [code] e [/code] quando postarem Códigos Java e ou exemplos de XMLs.
Evitem tópicos duplicados.
Tópico solucionado? Edite o primeiro post e coloque [RESOLVIDO] no final do título.
Evitem reviver tópicos antigos.

O tópico resolveu seu problema? Seja gentil, comente e ou agradeça quem contribuiu com a solução.

Obrigado!
[Email] [WWW] [Yahoo!] [MSN]
macario1983

JavaC Membro

Membro desde: 29/08/2013 12:47:32
Mensagens: 20
Offline

jeroqueiroz wrote:posta a msg de erro para que possa verificar.


Então eu fiz mais um testes e ai estou em dúvida...

Estou passando a nfe inteira e gera um erro que é o seguinte...



Mas mudei o código para este e deixei só a parte de dentro da xml e funcionou

Os códigos ficaram assim





Mas eu quero passar a nfe inteira, e cada classe receber seu pedaço...

Usando do exemplo que você me passou, o objeto emitente na classe main fica null

Vlw
jeroqueiroz

Moderador
[Avatar]

Membro desde: 11/06/2011 09:45:18
Mensagens: 1348
Localização: Bahia
Offline

Você esta fazendo errado.

Agora que percebi. Você não deve usar a classe que você criou para gerar o objeto e sim obter o XSD disponibilizado no portal da NF-e e então gerar as classes com o xjc veja este post: http://www.javac.com.br/jc/posts/list/1433.page

Então você fará a conversão da forma que citei acima, porém usando a classe referente a NF-e, então terá um objeto do tipo desta classe que foi gerada e poderá efetuar a leitura que deseja.

Jeremias Santos
Seguir no Twitter @jeroqueiroz
Blog Jeroqueiroz


Projeto NF-e, CT-e, CC-e? Comece Por Aqui!


Membros do fórum,

Usem a tag [code] e [/code] quando postarem Códigos Java e ou exemplos de XMLs.
Evitem tópicos duplicados.
Tópico solucionado? Edite o primeiro post e coloque [RESOLVIDO] no final do título.
Evitem reviver tópicos antigos.

O tópico resolveu seu problema? Seja gentil, comente e ou agradeça quem contribuiu com a solução.

Obrigado!
[Email] [WWW] [Yahoo!] [MSN]
macario1983

JavaC Membro

Membro desde: 29/08/2013 12:47:32
Mensagens: 20
Offline

jeroqueiroz wrote:Você esta fazendo errado.

Agora que percebi. Você não deve usar a classe que você criou para gerar o objeto e sim obter o XSD disponibilizado no portal da NF-e e então gerar as classes com o xjc veja este post: http://www.javac.com.br/jc/posts/list/1433.page

Então você fará a conversão da forma que citei acima, porém usando a classe referente a NF-e, então terá um objeto do tipo desta classe que foi gerada e poderá efetuar a leitura que deseja.



Estranho isso, pois na net os exemplo mais simples do jaxb não citam a criação de classes, mas enfim...

Fico em duvida pois eu somente preciso de alguns campos...

Posso eu apagar os mesmos das classes depois ou tem outro jeito usando uma api diferente como a xstream?

Se tiver, poderia me dizer como fazer utilizando a xstream?

Obrigado
jeroqueiroz

Moderador
[Avatar]

Membro desde: 11/06/2011 09:45:18
Mensagens: 1348
Localização: Bahia
Offline

Não é que não vai funcionar com sua classe e porque a classe da NFe tem a estrutura do próprio XML da NF-e.

O JAXB você pode utilizar com sua classe tranquilamente, porém precisar manter a estrutura do XML que eta fazendo a conversão. Falei pra fazer a geração para ser mais rápido e prático.

Jeremias Santos
Seguir no Twitter @jeroqueiroz
Blog Jeroqueiroz


Projeto NF-e, CT-e, CC-e? Comece Por Aqui!


Membros do fórum,

Usem a tag [code] e [/code] quando postarem Códigos Java e ou exemplos de XMLs.
Evitem tópicos duplicados.
Tópico solucionado? Edite o primeiro post e coloque [RESOLVIDO] no final do título.
Evitem reviver tópicos antigos.

O tópico resolveu seu problema? Seja gentil, comente e ou agradeça quem contribuiu com a solução.

Obrigado!
[Email] [WWW] [Yahoo!] [MSN]
jeroqueiroz

Moderador
[Avatar]

Membro desde: 11/06/2011 09:45:18
Mensagens: 1348
Localização: Bahia
Offline

Observe o erro acima ele esta reclamando de TAG que não existe na sua classe e o XML tem a hierarquia de tags q suas classe não tem, mas quando você gera ele já cria as classes com as hierarquias. Você pode converter o objeto e então obter os valores somente dos campos que você precisa.

Jeremias Santos
Seguir no Twitter @jeroqueiroz
Blog Jeroqueiroz


Projeto NF-e, CT-e, CC-e? Comece Por Aqui!


Membros do fórum,

Usem a tag [code] e [/code] quando postarem Códigos Java e ou exemplos de XMLs.
Evitem tópicos duplicados.
Tópico solucionado? Edite o primeiro post e coloque [RESOLVIDO] no final do título.
Evitem reviver tópicos antigos.

O tópico resolveu seu problema? Seja gentil, comente e ou agradeça quem contribuiu com a solução.

Obrigado!
[Email] [WWW] [Yahoo!] [MSN]
macario1983

JavaC Membro

Membro desde: 29/08/2013 12:47:32
Mensagens: 20
Offline

jeroqueiroz wrote:Observe o erro acima ele esta reclamando de TAG que não existe na sua classe e o XML tem a hierarquia de tags q suas classe não tem, mas quando você gera ele já cria as classes com as hierarquias. Você pode converter o objeto e então obter os valores somente dos campos que você precisa.


Consegui realizar a extração utilizando o jaxb, criei varios pacotes indetifcados pelo no do elemento e dentro de cada pacote, esta cada classe...

Funcionou, o unico porem que tenho q criar em cada pacote o arquivo package-info.java.
 
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Ir para:   
Powered by JForum 2.1.9 © JForum Team