none
Descargar XML RRS feed

  • Pregunta

  • Buenas tardes.

    lo que deseo hacer es poder generar la descarga de un XML que tengo en memoria.
    Gracias.

    sXML = string.Concat("<?xml version='1.0' encoding='UTF-8'?><BCE:Balanza xmlns:BCE='http://www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion http://www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion/BalanzaComprobacion_1_1.xsd' Version='1.1' ",
                                      "RFC='", sRFC, "' Mes='", sMes, "' Anio='", sAño, "' TipoEnvio='", sTipoEnvio, "' FechaModBal='", FechaModificacion, "'>");
    
    
                        for (int i = 4; i < dtExel.Rows.Count - 2; i++)
                        {
                            sb.Append("<BCE:Ctas NumCta='").Append(dtExel.Rows[i][0]).Append("' SaldoIni='").Append(dtExel.Rows[i][1]).Append("' Debe='").Append(dtExel.Rows[i][2]).Append("' Haber='").Append(dtExel.Rows[i][3]).Append("' SaldoFin='").Append(dtExel.Rows[i][4]).Append("'/>");
    
                        }
    
    
                        sXML += string.Concat(sb.ToString(), "</BCE:Balanza>");
                        XDocument xdoc = XDocument.Parse(sXML);

     El XML esta alojado en la variable xdoc y quisiera saber como descargar ese xml 
    de anetemano muchas gracias.

    viernes, 8 de mayo de 2015 18:29

Respuestas

  • Si ese código está en un Form de ASP.NET, puedes simplemente salvar el XDocument al Stream de salida del Response:

    xdoc.Save(Response.OutputStream);

    Dependiendo de qué clase de programa deba hacer la descarga, probablemente te interese también meter antes en la respuesta una cabecera indicando el tipo de descarga, y si lo haces desde dentro de un Form (en lugar de un .ashx, que sería más eficiente), entonces también querrás meter un Response.End para que no se envíe a la salida el HTML del form.

    Response.Clear();
    Response.ContentType = "text/xml";
    Response.ContentEncoding = System.Text.Encoding.UTF8;
    xdoc.Save(Response.OutputStream);
    Response.End();

    viernes, 8 de mayo de 2015 18:44

Todas las respuestas

  • Si ese código está en un Form de ASP.NET, puedes simplemente salvar el XDocument al Stream de salida del Response:

    xdoc.Save(Response.OutputStream);

    Dependiendo de qué clase de programa deba hacer la descarga, probablemente te interese también meter antes en la respuesta una cabecera indicando el tipo de descarga, y si lo haces desde dentro de un Form (en lugar de un .ashx, que sería más eficiente), entonces también querrás meter un Response.End para que no se envíe a la salida el HTML del form.

    Response.Clear();
    Response.ContentType = "text/xml";
    Response.ContentEncoding = System.Text.Encoding.UTF8;
    xdoc.Save(Response.OutputStream);
    Response.End();

    viernes, 8 de mayo de 2015 18:44
  • Gracias si me ha servido 

    viernes, 8 de mayo de 2015 20:51