Avatar billede mikkel_strack Nybegynder
10. juni 2006 - 18:52 Der er 2 kommentarer og
1 løsning

Oprette XML-dokument til download

Jeg har brug for at generere et xml-dokument som skal kunne downloades (ikke vises) ved et tryk på et link/knap.

Har brygget nedestående sammen - hvilket virker, men ikke er så smart.

--------------------------------
XmlDocument doc = new XmlDocument();

XmlNode root = doc.CreateElement("Collection");
doc.AppendChild(root);

XmlNode user = doc.CreateElement("User");
user.AppendChild(doc.CreateTextNode("Texttexttext"));
root.AppendChild(user);

doc.InsertBefore(doc.CreateXmlDeclaration("1.0", "UTF-8", "yes"), doc.DocumentElement);

doc.Save(@"C:\\xmlfile2.xml"); 


FileInfo file = new FileInfo("C:\\xmlfile2.xml");

Response.Clear();
Response.AddHeader("Content-Disposition", "attachment;filename=" + file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(file.FullName);
Response.End();

-------------------------

Det virker som sagt efter hensigten, men irriterer mig at jeg bliver nødt til at gemme xml-filen på serveren før jeg kan læse den til filestream.

Kan jeg slippe uden om dette trin?? Ville jo være herligt om man kunne noget i stil med FileInfo file = new FileInfo(XmlDocument)...
Avatar billede arne_v Ekspert
10. juni 2006 - 20:14 #1
prøv:

<%@ import namespace="System.Xml" %>
<script language="C#" runat="server">
void Page_Load(Object sender, EventArgs e)
{
    XmlDocument doc = new XmlDocument();
    XmlNode root = doc.CreateElement("Collection");
    doc.AppendChild(root);
    XmlNode user = doc.CreateElement("User");
    user.AppendChild(doc.CreateTextNode("Texttexttext"));
    root.AppendChild(user);
    doc.InsertBefore(doc.CreateXmlDeclaration("1.0", "UTF-8", "yes"), doc.DocumentElement);
    Response.Clear();
    Response.AddHeader("Content-Disposition", "attachment;filename=xmlfile2.xml");
    Response.AddHeader("Content-Length", doc.OuterXml.Length.ToString());
    Response.ContentType = "application/octet-stream";
    Response.Write(doc.OuterXml);
    Response.End();
}
</script>
Avatar billede mikkel_strack Nybegynder
11. juni 2006 - 00:21 #2
Den er jo lige i øjet. Perfekt :o)

Tak for hjælpen. Smid et svar så vi kan få afregnet.
Avatar billede arne_v Ekspert
11. juni 2006 - 00:25 #3
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester