none
Como trocar um nome de uma tag do XML RRS feed

  • Pergunta

  • Eu gerei uma lista e converti para XML, Porém o nome do principal campo do XML está com um nome que  o sistema que eu preciso enviar não aceita.

    Meu xml está indo mais ou menos assim:

    <ArrayOfServiceLocal>

            <servicelocal></servicelocal>

             <servicelocal></servicelocal>

    </ArrayOfServiceLocal>

    Preciso que a tag <ArrayOfServiceLocal>  abra e feche desta forma: <servicelocals> </servicelocals> Com o S no final e sem o ArrayOF no inicio

    Como eu altero isso?

    O melhor dos mundos é eu conseguir gerar um XML limpo, sem nenhum tipo de informação adicional, a nao ser as tags que eu passar... É possivel isso?

    Trecho do meu codigo:

     
                    if (Consulta.Rows.Count > 0)
                    {
                        serviceLocal varServicelocal = new serviceLocal();
                        List<serviceLocal> serviceLocals = new List<serviceLocal>();
                        //recebe = Consulta.Rows[0]["id_user"].ToString();

                        int TotalReg = Consulta.Rows.Count;

                        for (int contador = 0; contador < TotalReg;)
                        {
                            varServicelocal.description = Consulta.Rows[contador]["nom_fan_cl"].ToString();
                            varServicelocal.alternativeIdentifier = Consulta.Rows[contador]["codigo_cl"].ToString();
                            varServicelocal.corporateName = Consulta.Rows[contador]["raz_soc_cl"].ToString();
                            varServicelocal.cityNeighborhood = Consulta.Rows[contador]["cidade_cl"].ToString();
                            varServicelocal.state = Consulta.Rows[contador]["uf_cl"].ToString();
                            varServicelocal.street = Consulta.Rows[contador]["ender_cl"].ToString();


                            serviceLocals.Add(varServicelocal);
                            contador++;
                            

                        
                        

                        StringWriter retorno = new StringWriter();
                    
                        XmlSerializer xmlSer = new XmlSerializer(serviceLocals.GetType());
                        xmlSer.Serialize(retorno, serviceLocals);
                        Console.Write(retorno);

                        //Url da api
                       var url =
                            "https://api.umov.me/CenterWeb/api/21395eca4e26fc832dfdfedhddddddddddddjfj391388/serviceLocals.xml";

                        var requesString = (string.Format("data={0}", retorno, Encoding.UTF8));

                        var request = (HttpWebRequest)WebRequest.Create(url);
                        request.Method = "POST";
                        request.ContentType = "application/x-www-form-urlencoded";
                      

                        // Aqui grava o 'xml' como parametro
                        var stream = new StreamWriter(request.GetRequestStream());
                        stream.WriteLine(requesString);
                        stream.Close();

                        var response = (HttpWebResponse)request.GetResponse();
                        if (request != null) request.GetRequestStream().Close();

                        var resposta = "";
                        if (response != null)
                        {
                            var streamReader = new StreamReader(response.GetResponseStream());
                            resposta = streamReader.ReadToEnd();
                            streamReader.Close();
                            response.GetResponseStream().Close();
                        }

                        Console.Write(resposta);
                        Console.Read();

                        }     
                }



    sexta-feira, 15 de junho de 2018 15:49

Respostas

  • Na variável que você recebe o XML dá um replace no texto ArrayOfServiceLocal para servicelocals.

    https://msdn.microsoft.com/en-us/library/fk49wtc1(v=vs.110).aspx


    sábado, 30 de junho de 2018 01:53