Note: Forums will be making significant UX changes to address key usability improvements surrounding search, discoverability and navigation. To learn more about these changes please visit the announcement which can be found HERE.

已答复 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
     
     Respondido Contém Código

    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