0

ボタンを押して xmldocument ファイルをダウンロードできるようにしたいだけです。

たとえば、次のような多くのことを試しました。

XmlDocument doc As XmlDocument() = //Method that gets a xmldocument
Response.Clear()
this.Response.ContentType = "text/xml"
xmldoc.Save(this.Response.OutputStream)

Dim xmldocument As XmlDocument = //Method that gets a xmldocument
Using stream As MemoryStream = New MemoryStream()
            Dim xmlWriter As XmlTextWriter = New XmlTextWriter(stream, System.Text.Encoding.ASCII)
            xmldocument.WriteTo(xmlWriter)
            xmlWriter.Flush()

            Dim byteArray As Byte() = stream.ToArray()
            Response.Clear()
            Response.AppendHeader("Content-Disposition", "filename=MyExportedFile.xml")
            Response.AppendHeader("Content-Length", byteArray.Length.ToString())
            Response.ContentType = "application/octet-stream"
            Response.BinaryWrite(byteArray)
            xmlWriter.Close()
        End Using

何も機能しません。明らかなことを忘れていますか? 何も機能しないため、xmldocument が読み込まれます。すべて問題ないように見えますが、ファイルはダウンロードされず、「応答」はまったく何もしません。

Csharp または VB.NET での回答が役立つでしょう

4

2 に答える 2

2

このようなことを試してください

XmlDocument doc = new XmlDocument();
doc.LoadXml(@"
<root name='rootAttribute'>
    <OrderRequest name='one' />
    <OrderRequest name='two' />
    <OrderRequest name='three' />
</root>
"); // Load some random xml - use function to load whatever you need

MemoryStream ms = new MemoryStream();
using (XmlWriter writer = XmlWriter.Create(ms))
{
    doc.WriteTo(writer); // Write to memorystream
}

byte[] data = ms.ToArray();
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ContentType = "text/xml";
HttpContext.Current.Response.AddHeader("Content-Disposition:",
                    "attachment;filename=" + HttpUtility.UrlEncode("samplefile.xml")); // Replace with name here
HttpContext.Current.Response.BinaryWrite(data);
HttpContext.Current.Response.End();
ms.Flush(); // Probably not needed
ms.Close();
于 2012-12-05T16:10:21.990 に答える
0

やってみました...

Response.ContentType = "text/xml"
Response.Write(MethodThatReturnsXMLDoc().innerXml)
于 2012-12-05T15:57:13.560 に答える