none
Problema em tag no arquivo xml RRS feed

  • Pergunta

  • Bom Dia Pessoal,

    Estou com uma dificuldade na criação de um arquivo xml, preciso que o cabeçalho fique assim

    <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
    <infNFe versao="3.10" Id="NFe99999999999999999999999999999999999999999999">

    estou fazendo assim mas da erro, alguem pode dar uma ajuda pra resolver isso???

    .WriteStartElement("NFe") 'abre nfe
                .WriteAttributeString("xmlns", "http://www.portalfiscal.inf.br/nfe") ' aqui da erro  
    
                .WriteStartElement("infNfe") ' abre informações nfe
                .WriteAttributeString("versão", "3.10") ' aqui preciso que esse 3.10 venha de uma textbox como colocar esse codigo
                .WriteAttributeString("Id", "") 1 aqui mesma coisa o id vem de uma textbox

    Alguem pode dar uma ajuda para resolver esse problema,

    Desde já agradeço muito obrigado


    PabloSousa

    sexta-feira, 21 de abril de 2017 14:31

Respostas

  • Boa Tarde Hudson,

    Hudson deu certo muito obrigado pela força, agora olha esse codigo abaixo.

    <?xml version="1.0" encoding="utf-8"?>
    <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
      <infNfe versão="3.10" Id="9999999999999999999999999999"> ' aqui preciso que a versão e o id venha de um textbox tem como.

    eu uso para pegar da text box esse codigo mas no elemento não no atributo da certo tambem???

    .WriteStartElement("mod") ' modelo nfe
                .WriteString(Me.txtmodelo.Text.ToString()) aqui pega o texto que esta na textbox
                .WriteEndElement()

    se tiver como da um exemplo agradeço.

    muito obrigado.


    PabloSousa

    Amigo,

    Sim, você pode fazer dessa forma, igual você citou:

    'Criação da tag mod
    .WriteStartElement("mod")
    .WriteString(Me.txtmodelo.Text)
    .WriteEndElement()
    'Fim tag mod

    Ou também dessa forma:

    .WriteElementString("mod", Me.txtmodelo.Text)

    Que bom que a resposta lhe ajudou! Para que também possa ajudar outras pessoas com a mesma dúvida, não se esqueça de marcar como resposta e votar como útil!


    Hudson Carvalho

    • Marcado como Resposta Pablo_1977 sexta-feira, 21 de abril de 2017 17:49
    sexta-feira, 21 de abril de 2017 17:48

Todas as Respostas

  • Ola,

    Remova a linha que ocorre o erro e adicione o namespace no método WriteStartElement. Veja o exemplo abaixo:

                .WriteStartElement("NFe", "http://www.portalfiscal.inf.br/nfe")
                .WriteStartElement("infNfe")
                .WriteAttributeString("versão", "3.10")
                .WriteAttributeString("Id", "NFe99999999999999999999999999999999999999999999")

    Espero ter ajudado!


    Hudson Carvalho


    sexta-feira, 21 de abril de 2017 15:13
  • Veja se te ajuda.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Xml;
    
    namespace CriaXML
    {
        class Program
        {
            private const string filename = "exemplo.xml";
            static void Main(string[] args)
            {
                XmlTextWriter writer = new XmlTextWriter(filename, null);
                writer.Formatting = Formatting.Indented;
    
                writer.WriteComment("Exemplo de XML para NFE");
    
                //Aqui grava e elementor inicial NFe.
                writer.WriteStartElement("NFe");
    
                //Declaracao do Namespace
                writer.WriteAttributeString("xmlns", "http://www.portalfiscal.inf.br/nfe");
    
                //Aqui grava o segundo nivel, abaixo do elementor inicial NFe.
                writer.WriteStartElement("infNFe");
    
                //gera os atributos do elementro infNFE
                writer.WriteAttributeString("versao", "3.1");
                writer.WriteAttributeString("Id", "999");
    
                writer.WriteEndElement();
                writer.WriteEndElement();
               
                writer.Flush();
                writer.Close();
                XmlDocument doc = new XmlDocument();
                doc.PreserveWhitespace = true;
                doc.Load(filename);
    
                Console.Write(doc.InnerXml);
            }
        }
    }
    

    Se foi útil, nao esquece de pontuar a resposta.

    Obrigado.

    sexta-feira, 21 de abril de 2017 15:24
  • Boa Tarde Hudson,

    Hudson deu certo muito obrigado pela força, agora olha esse codigo abaixo.

    <?xml version="1.0" encoding="utf-8"?>
    <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
      <infNfe versão="3.10" Id="9999999999999999999999999999"> ' aqui preciso que a versão e o id venha de um textbox tem como.

    eu uso para pegar da text box esse codigo mas no elemento não no atributo da certo tambem???

    .WriteStartElement("mod") ' modelo nfe
                .WriteString(Me.txtmodelo.Text.ToString()) aqui pega o texto que esta na textbox
                .WriteEndElement()

    se tiver como da um exemplo agradeço.

    muito obrigado.


    PabloSousa

    sexta-feira, 21 de abril de 2017 16:34
  • Boa Tarde José,

    Obrigado pela força ai do codigo, eu converti ele para vb.net porque esta c#, mas ta tudo certo pode vim a servir em alguma hora, consegui resolver com a dica do hudson.

    Desde já agradeço muito.

    Muito obrigado.


    PabloSousa

    sexta-feira, 21 de abril de 2017 16:46
  • no fim.. ambas formas estão corretas e seguem o mesmo princípio, o importante é ajudar.

    nao esquece de marcar a resposta como útil para ajudar no forum.

    sexta-feira, 21 de abril de 2017 17:12
  • Boa Tarde Hudson,

    Hudson deu certo muito obrigado pela força, agora olha esse codigo abaixo.

    <?xml version="1.0" encoding="utf-8"?>
    <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
      <infNfe versão="3.10" Id="9999999999999999999999999999"> ' aqui preciso que a versão e o id venha de um textbox tem como.

    eu uso para pegar da text box esse codigo mas no elemento não no atributo da certo tambem???

    .WriteStartElement("mod") ' modelo nfe
                .WriteString(Me.txtmodelo.Text.ToString()) aqui pega o texto que esta na textbox
                .WriteEndElement()

    se tiver como da um exemplo agradeço.

    muito obrigado.


    PabloSousa

    Amigo,

    Sim, você pode fazer dessa forma, igual você citou:

    'Criação da tag mod
    .WriteStartElement("mod")
    .WriteString(Me.txtmodelo.Text)
    .WriteEndElement()
    'Fim tag mod

    Ou também dessa forma:

    .WriteElementString("mod", Me.txtmodelo.Text)

    Que bom que a resposta lhe ajudou! Para que também possa ajudar outras pessoas com a mesma dúvida, não se esqueça de marcar como resposta e votar como útil!


    Hudson Carvalho

    • Marcado como Resposta Pablo_1977 sexta-feira, 21 de abril de 2017 17:49
    sexta-feira, 21 de abril de 2017 17:48