Esse é o básico para se fazer esse processo. Ainda tem muita coisa que pode(e deve) ser aprimorada, como o uso de blocos "using" para todos os objetos, blocos try...catch também. Se quiser ficar por dentro de como se faz isso, se inscreva no canal e assista toda a série de vídeos sobre OOP. Nela explico detalhe por detalhe isso tudo. A OOP não é só para o código fica "bonitinho", tudo, absolutamente tudo em se tratando de .NET é orientado à objeto, então, entendendo OOP muito bem, praticamente nada vai ser mistério pra você no .NET!
kerplunk meu Amigo, Seus vídeos são tops, rápidos e objetivos, vc poderia fazer um video ensinando a criptografar a conectionstring? Seria perfeito! Valeu irmão!
Tiele SILVA Hmmm, essa é uma boa idéia! Tenho um aqui pra fazer sobre todas as variáveis de configuração, serializadas em um XML, só não tinha pensado em criptografar, essa é uma boa idéia. Obngado pela audiência e pelo elogio!
Faz um vídeo mostrando como utilizar a classe HttpCliente + certificado digital para envio e recebimento de resposta dos arquivos XML das notas fiscais. Já procurei em tudo que é canal e não encontrei.
Karaca, com poucas linhas e de fácil entendimento você faz isso rsrsrs. Por favor faz um ao contrário como o sugerido no vídeo, quando você puder. E se no futuro, quando possível tiver mais vídeos sobre nfe seria muito bom, em um ocasião você comentou comigo que para transmitir ou consultar uma nfe, poderia se fazer com WSDL, e com sua experiência acho que seria bem pratico montar um projetinho simples e funcional. Kerplunk, valeu por compartilhar seu conhecimento. Parabéns.
+Grupo NetVoo Sem problemas! Farei um sim. Mas melhor ainda, seria acompanhar os vídeos do canal, porque na série de OOP, vou ensinar a fazer métodos de extensão que fazem serialização e desserialização de qualquer objeto tanto para uma string quanto para arquivo. Mas posso fazer um curtinho desses mostrando como fazer isso. Obrigado por acompanhar o canal!
Sugiro ver os outros videos do canal, tenho explicações completas de como fazer esse tipo de processo. Não é o tipo de cosia que posso responder em poucas linhas.
Primeiramente parabéns pelo seu canal, suas video aulas são fora série e muito bem "Explicadinho". Agora vamos a minha dúvida... Eu criei a classe com base no xml de um cliente para preencher um dataGrid com todas as notas que selecionei no openFileDialog e consegui extrair os dados da classe, porém não funciona com notas de outros clientes que acredito ser pela versão da NFE. Como eu faço para a classe ser padrão para qualquer nfe?
Obrigado! O exemplo que usei de NFe, é mais ilustrativo do que prático. O correto mesmo é utilizar os modelos XSD disponibilizados no site da SEFAZ. Eles geram classes muito mais complexas e completas. Você já não é o primeiro que tem dificuldades com isso, por isso vou deixar aqui o link contendo todas as classes geradas à partir dos modelos XSD: drive.google.com/file/d/0BxGOuG70MDrONTFqekNFUWJlSUk/view?usp=sharing E não se esqueça de deixar seu joinha e se inscrever no canal!
Pra usar essa classe é da mesma maneira que da outra; conforme código postado acima : XmlSerializer ser = new XmlSerializer(typeof(NFe)); TextReader textReader = (TextReader)new StreamReader("D:\\downloads\ fe exemplo.xml"); XmlTextReader reader = new XmlTextReader(textReader); reader.Read(); NFe nota = (NFe)ser.Deserialize(reader);
Muito bom o vídeo! Mais um inscrito no canal! Meu problema é dúvida agora é como carregar o certificado digital corretamente com a biblioteca X509 do C# Você tem alguma dica em relação a isso?
É bem simples de fazer a leitura, usando o método "Import": X509Certificate cert = new X509Certificate(); cert.Import("C:\\pasta\\subpasta\\certificado.cer"); Se é que é isso que você queria... Se não por favor explique um pouco mais o que precisa pra que eu possa entender... Obrigado pela audiência!
O que eu queria é o seguinte, quais os passos que eu devo fazer para que quando eu enviar o xml da nfe ou nfce para a receita ela seja validada, o que eu vou extrair do certificado para enviar os dados de forma correta?
Ah sim, você quer assinar o XML digitalmente. Não tenho um vídeo sobre isso ainda, mas quero fazer o quanto antes pois me pedem bastante. É um procedimento relativamente complicado e faço diretamente no XML e não em um processo de serialização/desserialização. É mais ou menos assim: - Gero o XML serializando normal, como nesse vídeo: ruclips.net/video/xlDFj6INZVc/видео.html - Em seguida, faço a leitura do arquivo como objeto XML, assim: XmlDocument docRequest = new XmlDocument(); docRequest.PreserveWhitespace = false; docRequest.LoadXml(@"C:\pasta\subpasta\XML SEM ASSINATURA.xml"); - Isso feito, então eu busco o nó à ser assinado, chamado infNFe, assim: XmlNodeList ListInfNFe = docRequest.GetElementsByTagName("infNFe";); - Então entra a parte de buscar o certificado, assim: X509Certificate2 xCert; xCert = new X509Certificate2(@"C:\pasta\subpasta\Certificado.pfx", "senha_do_certificado"); - Agora vem a parte mais chata, percorrer os nós: foreach (XmlElement infNFe in ListInfNFe) { string id = infNFe.Attributes.GetNamedItem("Id").InnerText; signedXml = new SignedXml(infNFe); signedXml.SigningKey = xCert.PrivateKey; Reference reference = new Reference("#" + id); reference.AddTransform(new XmlDsigEnvelopedSignatureTransform()); reference.AddTransform(new XmlDsigC14NTransform()); signedXml.AddReference(reference); KeyInfo keyInfo = new KeyInfo(); keyInfo.AddClause(new KeyInfoX509Data(xCert)); signedXml.KeyInfo = keyInfo; signedXml.ComputeSignature(); XmlElement xmlSignature = docRequest.CreateElement("Signature", "www.w3.org/2000/09/xmldsig#"); XmlElement xmlSignedInfo = signedXml.SignedInfo.GetXml(); XmlElement xmlKeyInfo = signedXml.KeyInfo.GetXml(); XmlElement xmlSignatureValue = docRequest.CreateElement("SignatureValue", xmlSignature.NamespaceURI); string signBase64 = Convert.ToBase64String(signedXml.Signature.SignatureValue); XmlText text = docRequest.CreateTextNode(signBase64); xmlSignatureValue.AppendChild(text); xmlSignature.AppendChild(docRequest.ImportNode(xmlSignedInfo, true)); xmlSignature.AppendChild(xmlSignatureValue); xmlSignature.AppendChild(docRequest.ImportNode(xmlKeyInfo, true)); var evento = docRequest.GetElementsByTagName("SignedInfo"); evento[0].AppendChild(xmlSignature); } Esse é mais ou menos o caminho das pedras... Espero ter ajudado.
Boa tarde, tentei aqui executar o mesmo código e quando eu chego no break point, nota fica com o valor null, não aparece nenhuma informação das classes. Obs.: Estou utilizando um xml de uma NFSe. Poderia me dar uma luz por gentileza?
Resposta curta: Sim, é totalmente possível. PDF é um formato que possibilita praticamente qualquer conteúdo, incluindo PDF. O caso é que não vejo qualquer necessidade ou vantagem nisso. Veja bem, ao contrário do que se possa pensar, os arquivos XML das notas, são tão somente uma representação de dados, geralmente vindos de um banco de dados, eles são somente temporários e na verdade não sequer necessários de serem guardados após o envio. E mesmo para o envio o XML é desnecessário, pois o envio não depende do arquivo físico. E muito obrigado pela audiência! Não se esqueça de deixar seu joinha!
kerplunkboy Quero desenvolver um aplicativo simples em c# para leitura de arquivo xml que também seja possível gerar arquivos em pdf. Isso me ajudaria muito. Obrigado.
Amigo. Eu uso o vb.net. porém na hora de pegar o arquivo xml e dar um colar special igual vc faz, o vb.net não tras isso. Portanto não consigo colar a Classe. Você tem um exemplo da classe do c# para eu tentar fazer igual ao c# igual você mostrou no video
É possível que você esteja usando uma versão desatualizada do Visual Studio. A melhor coisa a ser feita é baixar uma versão atual como a versão 2015 Community é grátis e você pode fazer com ela exatamente como mostro no vídeo. Simplesmente passar a classe pronta, não seria de bom proveito para você. É melhor mesmo fazer todo o processo, isso faz com que você entenda melhor o que está ocorrendo. E muito obrigado pela audiência e não esqueça de deixar seu joinha e se inscrever no canal!
kerplunk, Lindo isso ai. Detalhe, uma nfe pode ter diversas tags, que podem ou não fazer parte do xml que se seta como referencia. tem como criar essa classe via código, sem ir la em editar e colar ? Pois cada nfe pode não ter a tag que vc queira carregar ou o contrario.
Sim, as classes são totalmente customizaveis. Essas, são baseadas no xml específico, só isso. Obrigado pela audiência! Não se esqueça de deixar seu joinha e se inscrever no canal!
@@kerplunkboydotNET Parabéns Pelo Vídeo, me ajudou muito. Gostaria que me ajudasse a abrir qualquer xml de nfe e não só o que foi usado para fazer a classe. Desde já agradeço
@@fabiofrigo5775 Olá! Para isso, você precisa gerar suas classes baseadas nos modelos XSD fornecidos pela SEFAZ. Esses sim conterão todas as propriedades da NFe.
Sim, sem o menor problema. Obviamente não EXATAMENTE da mesma maneira, você vai precisar de um serializador diferente. Nesse link, existe um artigo com vários approaches diferentes para essa tarefa: www.c-sharpcorner.com/article/json-serialization-and-deserialization-in-c-sharp/
Uma vez serializado, todas as propriedades do objeto podem ser usadas da forma que quiser. No seu caso simplesmente: txtSuaTextBox.Text = nota.infNFe.dest.xNome
Sim, o processo do vídeo funciona certinho (parabéns alias!!), mas não consigo saber a sintaxe para pegar a informação no objeto criado. Seria tipo isso: textbox1.Text = controlador.estagios.estagio[id=2].tempoDeVerde tempo; Mas qual a sintaxe correta? Esse que postei não funciona.
Estou supondo que "estagios" seja um array. Neste caso, basta usar um cast para List no array e usar uma expressão lambda para pegar o item desejado. Mais ou menos assim: controlador con = new controlador(); controladorEstagio esta = con.estagios.FirstOrDefault(x => x.id == 2); this.Text = esta.tempoDeVerdeMaximo.ToString(); Isso são conceitos básicos de OOP, se você está com dificuldade nisso, sugiro que assista as séries sobre OOP e Reflection. Elas lhe darão essa base. Um conselho: Não tente "atalhos" como esse. Algo do tipo "resolver pontualmente", isso só vai prejudicar seu aprendizado, pois lida com conceitos bem mais complexos e que deveriam estar sólidos para você.
+Lucas Santanna Olá muito obrigado! Você pode pode fazer o mesmo processo com qualquer XML de NFe. Na verdade, qualquer XML vai ter o mesmo resultado. E não esqueça de deixar seu joinha!
Obrigado Só mais uma dúvida tem algum site que fala sobre as abreviações das classes, por exemplo para min poder fazer a nota fiscal os campos são todos abreviados, para min poder saber tipo oque é " cCT, CFOP, nC, dhEmi etc... sabe algum artigo que fala oque é cada um? para mim poder completar toda a nota fiscal.... Obrigado pela ajuda da dei joinha! :)
+Lucas Santanna Você pode verificar a documentação completa no portal fiscal. Aliás para gerar auas classes de forma realmente completa, utilize os modelos XSD disponibilizados lá.
@@kerplunkboydotNET Muito bom o vídeo. Parabéns. Me inscrevi para ver mais. Dúvida 1: Como uso o arquivo XSD para criar uma classe? O Colar especial parece não funcionar. Dúvida 2: Depois que eu conseguir criar o XML tenho como faço para mandar para a receita e como faço para pegar o retorno. Tem algum vídeo ou curso que mostre todo o processo de criação de NFe?
Aqui deu certo assim XmlSerializer ser = new XmlSerializer(typeof(NFe.TNfeProc)); TextReader textReader = (TextReader)new StreamReader("C:\\teste.xml"); XmlTextReader reader = new XmlTextReader(textReader); reader.Read(); NFe.TNfeProc nota = (NFe.TNfeProc)ser.Deserialize(reader);
Kerplunkboy , cara eu to usando o visual studio 2015 e estou com dois problemas. 1. fazendo a criação da classe NFE como vc mostra quando chega na hora de mencionar ela no xmlserializer ela não aparece 2. a classe xmltextreader não aparece para eu instanciar o que estou fazendo de errado?
Quanto ao XmlTextReader, lembre-se que é case-sensitive, ou seja, maiúsculas e minúsculas fazem diferença Quanto à sua classe não ser mostrada, verifique se o nome e namespace da classe criada Obrigado pela audiência
O namespace aparece o mesmo do nome do projeto e se tento alterar na hora que referêncio ele aparece um erro falando que estou usando um namespace como variável. Só consegui ler a nfe usando leitura campo a campo. Sou novo em c# talvez esteja fazendo alguma coisa errada
Boa noite, muito bom os videos sem duvida alguma, parabéns. fiz um exemplo exatamente igual ao do vídeo mas me retornou a seguinte aviso: "InvalidOperationException: não era esperado." alguém pode me ajudar por favor? agradeço desde já!
Isso ta facil, queria ver voce pegar o valor dos impostos dos produtos do xml ... ai sim o bicho pega até hoje nao achei em lugar nenhum... isso ai todo mundo faz
Não sou de ficar comentando em videos do youtube, mas este seu foi um Fenômeno.Parabéns
Opa! Muito obrigado!
Muito obrigado! ainda mas já colocando o código, foi muita bondade!! parabéns!!
Rapaz, você me salvou. Parabéns pelo vídeo e muito obrigada.
Ganhou um inscrito, fiz o mesmo processo só que usando o CTe e funcionou direitinho.
Esse é o básico para se fazer esse processo. Ainda tem muita coisa que pode(e deve) ser aprimorada, como o uso de blocos "using" para todos os objetos, blocos try...catch também. Se quiser ficar por dentro de como se faz isso, se inscreva no canal e assista toda a série de vídeos sobre OOP. Nela explico detalhe por detalhe isso tudo. A OOP não é só para o código fica "bonitinho", tudo, absolutamente tudo em se tratando de .NET é orientado à objeto, então, entendendo OOP muito bem, praticamente nada vai ser mistério pra você no .NET!
kerplunk meu Amigo, Seus vídeos são tops, rápidos e objetivos, vc poderia fazer um video ensinando a criptografar a conectionstring?
Seria perfeito!
Valeu irmão!
Tiele SILVA Hmmm, essa é uma boa idéia! Tenho um aqui pra fazer sobre todas as variáveis de configuração, serializadas em um XML, só não tinha pensado em criptografar, essa é uma boa idéia. Obngado pela audiência e pelo elogio!
To aguardando!!!
Foi de enorme ajuda. Muito obrigado e parabéns!
Faz um vídeo mostrando como utilizar a classe HttpCliente + certificado digital para envio e recebimento de resposta dos arquivos XML das notas fiscais. Já procurei em tudo que é canal e não encontrei.
Obrigado, ão lembrava desse recurso
Karaca, com poucas linhas e de fácil entendimento você faz isso rsrsrs.
Por favor faz um ao contrário como o sugerido no vídeo, quando você puder.
E se no futuro, quando possível tiver mais vídeos sobre nfe seria muito bom, em um ocasião você comentou comigo que para transmitir ou consultar uma nfe, poderia se fazer com WSDL, e com sua experiência acho que seria bem pratico montar um projetinho simples e funcional.
Kerplunk, valeu por compartilhar seu conhecimento. Parabéns.
+Grupo NetVoo Sem problemas! Farei um sim. Mas melhor ainda, seria acompanhar os vídeos do canal, porque na série de OOP, vou ensinar a fazer métodos de extensão que fazem serialização e desserialização de qualquer objeto tanto para uma string quanto para arquivo. Mas posso fazer um curtinho desses mostrando como fazer isso.
Obrigado por acompanhar o canal!
Estou acompanhando sim, vi todos já, e implementei várias coisas que você usou em exemplos meus que estou fazendo para aprender C#.
Muito bom, muito obrigado parabens
Muito objetivo seu vídeo. Tem como dar uma dica para ler os produtos do xml e também realizar a geração?
e agora como usa este objeto para por exemplo mostrar os produtos em um datagridview ou listview por exemplo ?
Parabéns pelo vídeo!
Se possível, me explique como faço para pegar todos os produtos contidos na nota fiscal. Desde já, obrigado pela atenção.
Não é o primeiro à fazer esta pergunta. Sugiro que dê uma olhada na série sobre orientação à objeto aqui no canal mesmo.
Muito bom, maninho. Valeu o Help
Estou com um problema para Desserializar um arquivo da bolsa de valores B3 do brasil. Você poderia me ajudar?
muito bom parabéns
salvou!!!!
tem algum video mostrando como assinar o xml?
Ola, tem interesse em fazer uma trabalho de freelancer em um projeto parecido com esse? se sim entre contato, abraços..
Alguém conseguiu solucionar esse erro - erro no documento XML (2, 2).To usando o VS 2012
Não.
Ola como posso converter uma tabela SQL em arquivo XML apartir do c#
Sugiro ver os outros videos do canal, tenho explicações completas de como fazer esse tipo de processo. Não é o tipo de cosia que posso responder em poucas linhas.
Primeiramente parabéns pelo seu canal, suas video aulas são fora série e muito bem "Explicadinho". Agora vamos a minha dúvida... Eu criei a classe com base no xml de um cliente para preencher um dataGrid com todas as notas que selecionei no openFileDialog e consegui extrair os dados da classe, porém não funciona com notas de outros clientes que acredito ser pela versão da NFE. Como eu faço para a classe ser padrão para qualquer nfe?
Obrigado! O exemplo que usei de NFe, é mais ilustrativo do que prático. O correto mesmo é utilizar os modelos XSD disponibilizados no site da SEFAZ. Eles geram classes muito mais complexas e completas. Você já não é o primeiro que tem dificuldades com isso, por isso vou deixar aqui o link contendo todas as classes geradas à partir dos modelos XSD: drive.google.com/file/d/0BxGOuG70MDrONTFqekNFUWJlSUk/view?usp=sharing
E não se esqueça de deixar seu joinha e se inscrever no canal!
Pra usar essa classe é da mesma maneira que da outra; conforme código postado acima : XmlSerializer ser = new XmlSerializer(typeof(NFe)); TextReader textReader = (TextReader)new StreamReader("D:\\downloads\
fe exemplo.xml"); XmlTextReader reader = new XmlTextReader(textReader); reader.Read(); NFe nota = (NFe)ser.Deserialize(reader);
Muito bom o vídeo! Mais um inscrito no canal!
Meu problema é dúvida agora é como carregar o certificado digital corretamente com a biblioteca X509 do C#
Você tem alguma dica em relação a isso?
É bem simples de fazer a leitura, usando o método "Import":
X509Certificate cert = new X509Certificate();
cert.Import("C:\\pasta\\subpasta\\certificado.cer");
Se é que é isso que você queria... Se não por favor explique um pouco mais o que precisa pra que eu possa entender...
Obrigado pela audiência!
O que eu queria é o seguinte, quais os passos que eu devo fazer para que quando eu enviar o xml da nfe ou nfce para a receita ela seja validada, o que eu vou extrair do certificado para enviar os dados de forma correta?
Ah sim, você quer assinar o XML digitalmente. Não tenho um vídeo sobre isso ainda, mas quero fazer o quanto antes pois me pedem bastante. É um procedimento relativamente complicado e faço diretamente no XML e não em um processo de serialização/desserialização. É mais ou menos assim:
- Gero o XML serializando normal, como nesse vídeo: ruclips.net/video/xlDFj6INZVc/видео.html
- Em seguida, faço a leitura do arquivo como objeto XML, assim:
XmlDocument docRequest = new XmlDocument();
docRequest.PreserveWhitespace = false;
docRequest.LoadXml(@"C:\pasta\subpasta\XML SEM ASSINATURA.xml");
- Isso feito, então eu busco o nó à ser assinado, chamado infNFe, assim:
XmlNodeList ListInfNFe = docRequest.GetElementsByTagName("infNFe";);
- Então entra a parte de buscar o certificado, assim:
X509Certificate2 xCert;
xCert = new X509Certificate2(@"C:\pasta\subpasta\Certificado.pfx", "senha_do_certificado");
- Agora vem a parte mais chata, percorrer os nós:
foreach (XmlElement infNFe in ListInfNFe)
{
string id = infNFe.Attributes.GetNamedItem("Id").InnerText;
signedXml = new SignedXml(infNFe);
signedXml.SigningKey = xCert.PrivateKey;
Reference reference = new Reference("#" + id);
reference.AddTransform(new XmlDsigEnvelopedSignatureTransform());
reference.AddTransform(new XmlDsigC14NTransform());
signedXml.AddReference(reference);
KeyInfo keyInfo = new KeyInfo();
keyInfo.AddClause(new KeyInfoX509Data(xCert));
signedXml.KeyInfo = keyInfo;
signedXml.ComputeSignature();
XmlElement xmlSignature = docRequest.CreateElement("Signature", "www.w3.org/2000/09/xmldsig#");
XmlElement xmlSignedInfo = signedXml.SignedInfo.GetXml();
XmlElement xmlKeyInfo = signedXml.KeyInfo.GetXml();
XmlElement xmlSignatureValue = docRequest.CreateElement("SignatureValue", xmlSignature.NamespaceURI);
string signBase64 = Convert.ToBase64String(signedXml.Signature.SignatureValue);
XmlText text = docRequest.CreateTextNode(signBase64);
xmlSignatureValue.AppendChild(text);
xmlSignature.AppendChild(docRequest.ImportNode(xmlSignedInfo, true));
xmlSignature.AppendChild(xmlSignatureValue);
xmlSignature.AppendChild(docRequest.ImportNode(xmlKeyInfo, true));
var evento = docRequest.GetElementsByTagName("SignedInfo");
evento[0].AppendChild(xmlSignature);
}
Esse é mais ou menos o caminho das pedras... Espero ter ajudado.
Obrigado pela ajuda! Darei uma olhada! Muito bom o conteúdo!
Boa tarde, tentei aqui executar o mesmo código e quando eu chego no break point, nota fica com o valor null, não aparece nenhuma informação das classes.
Obs.: Estou utilizando um xml de uma NFSe.
Poderia me dar uma luz por gentileza?
Gostaria de saber se existe como gerar um arquivo em pdf desse arquivo xml. Obrigado. Muito bom o vídeo.
Resposta curta: Sim, é totalmente possível. PDF é um formato que possibilita praticamente qualquer conteúdo, incluindo PDF. O caso é que não vejo qualquer necessidade ou vantagem nisso. Veja bem, ao contrário do que se possa pensar, os arquivos XML das notas, são tão somente uma representação de dados, geralmente vindos de um banco de dados, eles são somente temporários e na verdade não sequer necessários de serem guardados após o envio. E mesmo para o envio o XML é desnecessário, pois o envio não depende do arquivo físico. E muito obrigado pela audiência! Não se esqueça de deixar seu joinha!
kerplunkboy Quero desenvolver um aplicativo simples em c# para leitura de arquivo xml que também seja possível gerar arquivos em pdf. Isso me ajudaria muito. Obrigado.
Você quer colocar em formato PDF um conteúdo XML, é isso?
kerplunkboy Sim.
Ok, e qual sua dificuldade?
Amigo. Eu uso o vb.net. porém na hora de pegar o arquivo xml e dar um colar special igual vc faz, o vb.net não tras isso. Portanto não consigo colar a Classe. Você tem um exemplo da classe do c# para eu tentar fazer igual ao c# igual você mostrou no video
É possível que você esteja usando uma versão desatualizada do Visual Studio. A melhor coisa a ser feita é baixar uma versão atual como a versão 2015 Community é grátis e você pode fazer com ela exatamente como mostro no vídeo. Simplesmente passar a classe pronta, não seria de bom proveito para você. É melhor mesmo fazer todo o processo, isso faz com que você entenda melhor o que está ocorrendo. E muito obrigado pela audiência e não esqueça de deixar seu joinha e se inscrever no canal!
kerplunk,
Lindo isso ai.
Detalhe, uma nfe pode ter diversas tags, que podem ou não fazer parte do xml que se seta como referencia.
tem como criar essa classe via código, sem ir la em editar e colar ?
Pois cada nfe pode não ter a tag que vc queira carregar ou o contrario.
Sim, as classes são totalmente customizaveis. Essas, são baseadas no xml específico, só isso. Obrigado pela audiência! Não se esqueça de deixar seu joinha e se inscrever no canal!
@@kerplunkboydotNET Parabéns Pelo Vídeo, me ajudou muito. Gostaria que me ajudasse a abrir qualquer xml de nfe e não só o que foi usado para fazer a classe. Desde já agradeço
@@fabiofrigo5775 Olá! Para isso, você precisa gerar suas classes baseadas nos modelos XSD fornecidos pela SEFAZ. Esses sim conterão todas as propriedades da NFe.
o que voce fez com o xml pode ser feito com json?
Sim, sem o menor problema. Obviamente não EXATAMENTE da mesma maneira, você vai precisar de um serializador diferente. Nesse link, existe um artigo com vários approaches diferentes para essa tarefa: www.c-sharpcorner.com/article/json-serialization-and-deserialization-in-c-sharp/
como acesso os dados dos tributos ICMS e IPI ?
Sugiro que dê uma olhada nos vídeos sobre OOP. Sua dificuldade é bem clássica de quem ainda não domina o assunto.
Preciso de ajuda com a sintaxe para pegar esses dados e colocar num textbox por exemplo.
Uma vez serializado, todas as propriedades do objeto podem ser usadas da forma que quiser. No seu caso simplesmente: txtSuaTextBox.Text = nota.infNFe.dest.xNome
Como ler por exemplo o "tempoDeVerde tempo" do "estagio" com id=2 ???
O processo é exatamente o mesmo que você vê no vídeo. Experimente segui-lo e com certeza vai entender.
Sim, o processo do vídeo funciona certinho (parabéns alias!!), mas não consigo saber a sintaxe para pegar a informação no objeto criado.
Seria tipo isso:
textbox1.Text = controlador.estagios.estagio[id=2].tempoDeVerde tempo;
Mas qual a sintaxe correta? Esse que postei não funciona.
Estou supondo que "estagios" seja um array. Neste caso, basta usar um cast para List no array e usar uma expressão lambda para pegar o item desejado. Mais ou menos assim:
controlador con = new controlador();
controladorEstagio esta = con.estagios.FirstOrDefault(x => x.id == 2);
this.Text = esta.tempoDeVerdeMaximo.ToString();
Isso são conceitos básicos de OOP, se você está com dificuldade nisso, sugiro que assista as séries sobre OOP e Reflection. Elas lhe darão essa base. Um conselho: Não tente "atalhos" como esse. Algo do tipo "resolver pontualmente", isso só vai prejudicar seu aprendizado, pois lida com conceitos bem mais complexos e que deveriam estar sólidos para você.
Olá tudo certo? bom vídeo, poderia me passar o link da nota fiscal xml de exemplo pois não encontrei no site...preciso para fazer uns teste...Obrigado
+Lucas Santanna Olá muito obrigado! Você pode pode fazer o mesmo processo com qualquer XML de NFe. Na verdade, qualquer XML vai ter o mesmo resultado. E não esqueça de deixar seu joinha!
Obrigado Só mais uma dúvida tem algum site que fala sobre as abreviações das classes, por exemplo para min poder fazer a nota fiscal os campos são todos abreviados, para min poder saber tipo oque é " cCT, CFOP, nC, dhEmi etc... sabe algum artigo que fala oque é cada um? para mim poder completar toda a nota fiscal.... Obrigado pela ajuda da dei joinha! :)
+Lucas Santanna Você pode verificar a documentação completa no portal fiscal. Aliás para gerar auas classes de forma realmente completa, utilize os modelos XSD disponibilizados lá.
+Lucas Santanna Você pode usar qualquer XML. Não precisa ser da NFe.
@@kerplunkboydotNET Muito bom o vídeo. Parabéns. Me inscrevi para ver mais. Dúvida 1: Como uso o arquivo XSD para criar uma classe? O Colar especial parece não funcionar. Dúvida 2: Depois que eu conseguir criar o XML tenho como faço para mandar para a receita e como faço para pegar o retorno. Tem algum vídeo ou curso que mostre todo o processo de criação de NFe?
Aqui deu certo assim
XmlSerializer ser = new XmlSerializer(typeof(NFe.TNfeProc));
TextReader textReader = (TextReader)new StreamReader("C:\\teste.xml");
XmlTextReader reader = new XmlTextReader(textReader);
reader.Read();
NFe.TNfeProc nota = (NFe.TNfeProc)ser.Deserialize(reader);
So Funciona para C# porque em .net nao cola especial
Como assim "em .net"?
Visual Studio 2015 .net ele fica em branco nao cola especial
Use uma versão mais recente. Visual Studio 2017 community é totalmente gratuito.
Kerplunkboy , cara eu to usando o visual studio 2015 e estou com dois problemas.
1. fazendo a criação da classe NFE como vc mostra quando chega na hora de mencionar ela no xmlserializer ela não aparece
2. a classe xmltextreader não aparece para eu instanciar
o que estou fazendo de errado?
Quanto ao XmlTextReader, lembre-se que é case-sensitive, ou seja, maiúsculas e minúsculas fazem diferença
Quanto à sua classe não ser mostrada, verifique se o nome e namespace da classe criada
Obrigado pela audiência
O namespace aparece o mesmo do nome do projeto e se tento alterar na hora que referêncio ele aparece um erro falando que estou usando um namespace como variável.
Só consegui ler a nfe usando leitura campo a campo.
Sou novo em c# talvez esteja fazendo alguma coisa errada
Quanto ao xnltextreader eu serei o projeto é quando reiniciei ele reconheceu normalmente, antes não conseguia nem listar a referência
Boa noite, muito bom os videos sem duvida alguma, parabéns.
fiz um exemplo exatamente igual ao do vídeo mas me retornou a seguinte aviso:
"InvalidOperationException: não era esperado."
alguém pode me ajudar por favor?
agradeço desde já!
Consegui resolver esse erro?
Também estou com esse erro
estou com o mesmo problema Erro no documento XML (1, 40).'
InvalidOperationException: não era esperado.
Conseguiu resolver ?
Tive o mesmo problema e ainda nao achei a soluçao
Isso ta facil, queria ver voce pegar o valor dos impostos dos produtos do xml ... ai sim o bicho pega até hoje nao achei em lugar nenhum... isso ai todo mundo faz
Tudo que constar no XML vai estar nas classes, incluindo os impostos.