none
Gerar xml com c# RRS feed

  • Pergunta

  • Senhores , preciso da ajuda de vcs !!            

    O trecho abaixo :

                XmlTextWriter writer = new XmlTextWriter("product.xml", System.Text.Encoding.UTF8);
                writer.WriteStartDocument(true);
                writer.Formatting = Formatting.Indented;
                writer.Indentation = 2;

             Cria um arquivo xml já com o cabeçalho 

                      <?xml version="1.0" encoding="UTF-8" standalone="true"?>

            Porém , preciso de mais uma linha abaixo desta antes de começar a criar as tags.Preciso da linha :

                      <TLote_GNRE xmlns="http://www.gnre.pe.gov.br"> 

          Acredito que eu tenha que utilizar : writer.WriteStartElement("TLote_GNRE xmlns='"http://www.gnre.pe.gov.br"'");       

         Duas perguntas : 1 - é o WriteStartElement que devo usar neste caso ?

                                     2 - se sim , como tratar os aspas do endereço ?..pois o comando interpreta q os aspas esta finalizando o String e espera o  ) parentesis .   

     

    quinta-feira, 18 de outubro de 2012 17:44

Todas as Respostas

  • Eduardo,

    Não costumo trabalhar com a classe XmlTextWriter, geralmente uso a classe XDocument contida no namespace "System.Xml.Linq" para trabalhar com XML. Se a sua aplicação for .NET 4 talvez isso lhe ajude:

    using System.Xml.Linq;
    
    XNamespace name = "http://www.gnre.pe.gov.br";
    XDocument xDoc = new XDocument(
        new XDeclaration("1.0", "utf-8", "yes"), 
        new XElement(name + "TLote_GNRE","Valorrrrrrrrrrrrrr"));
    
    xDoc.Save(@"C:\teste.xml");

    Caso tenha se interessado pela solução acima, procure estudar sobre LINQ to XML.

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    quinta-feira, 18 de outubro de 2012 18:19
  • Eduardo, blz?

    Você consegui gerar seu XML?

    Atualmente também estou em um projeto GNRE on-line, e consegui gerar meu XML, falta validar.

    caso necessite de algo!!!.

    Agora estou tentando ler o arquivo de resposta, você já chegou neste ponto?

    Como fez?

    Atenciosamente,

    Adenilson. 

    quinta-feira, 1 de novembro de 2012 15:43
  • Adenilson ,

    Ainda não...somente o envio.

    Estou com problemas com o enconding.utf8 ,

    preciso gerar com o enconding.ANSI ,

    O arquivo gerado precisa ter o formato txt , correto ?

    Qdo eu simplesmente salvo como txt , ele dá problema .Mas se eu copiar o conteudo ao arquivo e colar num doc novo no notepad e salvar , ele passa. Muito estranho ...Então tentei alterar na mão , o enconding para ANSI e passou.Eu precisava gerar direto como ANSI.

    Voce passou por isso ? como vc esta gerando ???

    GRato

    segunda-feira, 5 de novembro de 2012 16:56
  • Bom Dia!

    Também estou desenvolvendo a GNRE On-line e meu arquivo de resposta com a configuração da UF está me dando dor de cabeça...

    quando não retorna erro na formação retorna erro no certificado, já tentei de tudo!

    Caso alguem já tenha passado dessa fase e puder me ajudar fico grata!

    abrasss

    quarta-feira, 7 de novembro de 2012 10:56
  • Cara, desculpe a demora.

    Acho que o arquivo deve ser gerado em formato XML e não TXT.

    Estou gerando o arquivo no disco da seguinte forma:

    #region Gerar XML no disco
    XmlSerializer xmls = new XmlSerializer(objLote.GetType()); //objLote é uma classe minha do tipo TLote_GNRE encontrada no XSD
    string xmlAux = string.Empty;
    
    using (MemoryStream ms = new MemoryStream())
    {
        XmlWriterSettings settings = new XmlWriterSettings();
        settings.Encoding = Encoding.UTF8;
        settings.Indent = true;
        settings.IndentChars = "\t";
        settings.NewLineChars = Environment.NewLine;
        settings.ConformanceLevel = ConformanceLevel.Document;
    
        using (XmlWriter writer = XmlTextWriter.Create(ms, settings))
        {
            xmls.Serialize(writer, objLote); //objLote é uma classe minha do tipo TLote_GNRE encontrada no XSD
        }
    
        xmlAux = Encoding.UTF8.GetString(ms.ToArray());
    }
    
    if (xmlAux != string.Empty)
    {
        using (StreamWriter sw = new StreamWriter(this.DiretorioGravarArquivos)) // this.DiretorioGravarArquivos é p caminho e nome do arquivo a ser gravado
        {
            sw.Write(xmlAux);
            sw.Close();
        }
    }
    #endregion
    

    Blz,

    Atenciosamente.

    quinta-feira, 8 de novembro de 2012 18:01
  • Dayanna,

    Ainda não passamos deste ponto mas pelo que entendemos o CNPJ do certificado deve estar autorizado para utilizar no site GNRE on-line, você já viu isto?

    Este arquivo de retorno recebido,  você poderia nos enviar para fazermos alguns testes?

    Obrigado.

    Adenilson.

    quinta-feira, 8 de novembro de 2012 18:05
  • Olá Adenilson!

    Este é o arquivo que envio, para solicitar um retorno com as configurações que preciso preencher e assim retornar novamente.

    envio este:

    <?xml version="1.0" encoding="utf-16" ?>

    <TConsultaConfigUf xmlns="https://www.gnre.pe.gov.br">

    <ambiente>1</ambiente>

    <uf>PB</uf>

    </TConsultaConfigUf>

    recebo msg, de mal formação do xml de retorno. Como se o xml de configuração, que o GNRE me manda estivesse mal formado!

    Obrigada!

    Abrass.

    quarta-feira, 21 de novembro de 2012 18:31
  • Segue o link para um artigo muito bom: http://www.c-sharpcorner.com/UploadFile/mahesh/ReadWriteXMLTutMellli2111282005041517AM/ReadWriteXMLTutMellli21.aspx

    Atenciosamente, Marcio Nogueira Cardoso Pinto.

    domingo, 25 de novembro de 2012 12:36
  • Por favor, vi que o tópico é sobre geração de XML, porém foi citado acima a geração do arquivo XML para GNRE Online. Então queria aproveitar para perguntar se alguém esta conseguindo enviar GNRE online (processo completo: Envio, leitura do retorno, consulta do lote).

    Pois estou tendo problemas na consulta do lote. Simplesmente recebo a mensagem de resposta: "java.rmi.RemoteException: Erro ao gerar XML de resposta". Alguém poderia me ajudar?

    quarta-feira, 28 de novembro de 2012 18:22
  • Boa tarde Robson,

    Conseguiu resolver seu problema do RemoteException ta acontecendo comigo :(

    att


    1000ton Analista de Sistema Plastripel - Barretos @MiltonFilho

    segunda-feira, 4 de março de 2013 18:59
  • Parabens pela publicacao. funcionou perfeitamente. 
    sexta-feira, 21 de junho de 2013 17:33