XML Hierarquico NFE
-
segunda-feira, 26 de março de 2012 12:47
Pessoal,
Depois de muito pesquisar e ler fiz alguns teste e estou com a seguintes duvidas:
Fiz um código de XMl Hierarquico para montar a NFE, mas a taf CNF fica sem o valor e o valor é jogado na TAG Emit, alguem podem me ajudar?
Segue o código C#
//Cria as Tag XML
XmlElement raiz;XmlAttribute att;
raiz = doc.CreateElement("enviNFe", NFeNamespace);
// Atributos do nó de enviNFe
att = doc.CreateAttribute("versao");
att.Value = "1.10";
raiz.Attributes.Append(att);XmlElement noIdLote;
XmlText noText;
noIdLote = doc.CreateElement("idLote", NFeNamespace);
noText = doc.CreateTextNode("71");
noIdLote.AppendChild(noText);
// "Nó" é filho de raiz :
raiz.AppendChild(noIdLote);//Cria a TAG infNFE
XmlElement noInfNFe;
noInfNFe = doc.CreateElement("infNFe", NFeNamespace);
att = doc.CreateAttribute("Id");
att.Value = "NFe3508059978";
noInfNFe.Attributes.Append(att);// Informação dentro da Tag InfNfe
att = doc.CreateAttribute("versao");
att.Value = "2.00";
noInfNFe.Attributes.Append(att);// Cria Filhos do infNFE
XmlElement noFilhoInfNFE;noFilhoInfNFE = doc.CreateElement("cUF", NFeNamespace);
noText = doc.CreateTextNode("35");
noFilhoInfNFE.AppendChild(noText);
noInfNFe.AppendChild(noFilhoInfNFE);noFilhoInfNFE = doc.CreateElement("XXX", NFeNamespace);
noText = doc.CreateTextNode("aaa");
noFilhoInfNFE.AppendChild(noText);
noInfNFe.AppendChild(noFilhoInfNFE);noFilhoInfNFE = doc.CreateElement("cNF", NFeNamespace);
noText = doc.CreateTextNode("518005127");
noFilhoInfNFE.AppendChild(noText);
noInfNFe.AppendChild(noFilhoInfNFE);noFilhoInfNFE = doc.CreateElement("cNF", NFeNamespace);
noText = doc.CreateTextNode("518005127");
noFilhoInfNFE.AppendChild(noText);
noInfNFe.AppendChild(noFilhoInfNFE);
// *** Inclua os demais campos aqui ....
XmlElement noEmit;
//XmlText noText;
noEmit = doc.CreateElement("Emit", NFeNamespace);
//noText = doc.CreateTextNode("71");
noEmit.AppendChild(noText);
// "Nó" é filho de raiz :
raiz.AppendChild(noEmit);
// Cria Filhos do Emit
XmlElement noFilhoEmit;
noFilhoEmit = doc.CreateElement("CNPJ", NFeNamespace);
noText = doc.CreateTextNode("08133339000152");
noFilhoEmit.AppendChild(noText);
noEmit.AppendChild(noFilhoEmit);noFilhoEmit = doc.CreateElement("xNome", NFeNamespace);
noText = doc.CreateTextNode("Empresa X");
noFilhoEmit.AppendChild(noText);
noEmit.AppendChild(noFilhoEmit);noFilhoEmit = doc.CreateElement("xFant", NFeNamespace);
noText = doc.CreateTextNode("XXX");
noFilhoEmit.AppendChild(noText);
noEmit.AppendChild(noFilhoEmit);//Criar enderEmit filho do Emit
XmlElement noEnderEmit;
noEnderEmit = doc.CreateElement("enderEmit", NFeNamespace);
// "Nó" é filho do Emit :
noEmit.AppendChild(noEnderEmit);// Cria Filhos do enderEmit
XmlElement noFilhoeEderEmit;
noFilhoeEderEmit = doc.CreateElement("xLgr", NFeNamespace);
noText = doc.CreateTextNode("R. XX");
noFilhoeEderEmit.AppendChild(noText);
noEnderEmit.AppendChild(noFilhoeEderEmit);noFilhoeEderEmit = doc.CreateElement("nro", NFeNamespace);
noText = doc.CreateTextNode("99");
noFilhoeEderEmit.AppendChild(noText);
noEnderEmit.AppendChild(noFilhoeEderEmit);//Cria o No (IE) filho do Emit
noFilhoEmit = doc.CreateElement("IE", NFeNamespace);
noText = doc.CreateTextNode("143333334114");
noFilhoEmit.AppendChild(noText);
noEmit.AppendChild(noFilhoEmit);noFilhoEmit = doc.CreateElement("IM", NFeNamespace);
noText = doc.CreateTextNode("35544447");
noFilhoEmit.AppendChild(noText);
noEmit.AppendChild(noFilhoEmit);// Monta a Hierarquia de nós
XmlElement noNFe;
noNFe = doc.CreateElement("NFe", NFeNamespace);
noNFe.AppendChild(noInfNFe);
noNFe.AppendChild(noEmit);
raiz.AppendChild(noNFe);doc.AppendChild(raiz);
//Salva o XML
doc.Save("C:/xml/Teste_Novo.xml");
Todas as Respostas
-
sexta-feira, 4 de maio de 2012 00:54
Bianconi, o código abaixo
XmlElement noEmit; //XmlText noText; noEmit = doc.CreateElement("Emit", NFeNamespace); //noText = doc.CreateTextNode("71"); noEmit.AppendChild(noText); // "Nó" é filho de raiz : raiz.AppendChild(noEmit);deve ser substituido pelo abaixo
XmlElement noEmit; //XmlText noText; noEmit = doc.CreateElement("Emit", NFeNamespace); noText = doc.CreateTextNode(""); // essa linha deve ser descomentada e passar "" como parametro do método CreateTextNode noEmit.AppendChild(noText); // "Nó" é filho de raiz : raiz.AppendChild(noEmit);Você estava criando um novo node com o texto atribuido no node anterior. Sendo que esse novo node não deverá ter texto(noText = doc.CreateTextNode("")).
Qualquer dúvida, só falar.
abs
- Marcado como Resposta Levi DomingosMicrosoft Community Contributor, Moderator quinta-feira, 10 de maio de 2012 21:15

