Är det möjligt att skapa ett xml-dokument utan att behöva göra en xml-fil? Jag har gjort ett fotoalbum som laddar in data från en xml-fil. Nu vill jag spara det i en databas och generera en xml-fil från den, jag vill helst göra detta utan att behöva spara det i en xml-fil. Nån som kan förklara lite snabbt eller skicka med en länk? Har sökt men kan inte hitta det jag vill ha. Jag skriver den för hand nu, men vill som sagt ha det i en databas. Hämta datan och sånt är inga problem, det jag inte klarar är att göra xml-filen. Om du kollar upp vilka konstruktorer XmlTextWriter har så ser du att det finns en som tar emot två parametrar; dels en System.IO.Stream och dels en System.Text.Encoding, den är intressant. Som stream skulle du t.ex. kunna ha en memorystream (sparar bara direkt till minnet), eller en responsestream (skriver direkt till webbläsaren)Xml on the fly
Jag har för mej att jag har gjort nåt liknande när jag gjorde en rss-feed, men kan givetvis inte hitta det.Sv:Xml on the fly
--------------------EDIT----------------------
Här gör jag en xml-fil, men som ni ser skapar jag en xml-fil också. Jagvill helst inte göra det.
<code>
protected void writeXml()
{
Gallery gallery = new Gallery();
try
{
gallery = GalleryAccess.GetGalleryByID(1);
}
catch (Exception ex)
{
}
Response.Clear();
string xmlFile = Server.MapPath("../Flash/PhotoGallery.xml");
XmlTextWriter rssFeed = new XmlTextWriter(xmlFile, null);
rssFeed.Formatting = Formatting.Indented;
rssFeed.Indentation = 3;
rssFeed.WriteStartDocument();
rssFeed.WriteStartElement("rss");
rssFeed.WriteAttributeString("version", "2.0");
rssFeed.WriteStartElement("channel");
rssFeed.WriteElementString("title", gallery.Title);
rssFeed.WriteElementString("link", gallery.Link);
rssFeed.WriteElementString("description", gallery.Description);
rssFeed.WriteElementString("language", gallery.Language);
rssFeed.WriteElementString("copyright", gallery.Copyright);
rssFeed.WriteElementString("lastBuildDate", gallery.LastModefied);
rssFeed.WriteElementString("pubDate", gallery.PublishDate);
rssFeed.WriteElementString("docs", gallery.Docs);
rssFeed.WriteElementString("webMaster", gallery.WebMaster);
//foreach (Item it in items)
//{
// rssFeed.WriteStartElement("item");
// rssFeed.WriteElementString("title", it.Title);
// rssFeed.WriteElementString("link", it.Link);
// rssFeed.WriteElementString("guid", it.Link);
// rssFeed.WriteElementString("description", it.Desc);
// rssFeed.WriteStartElement("encloser");
// rssFeed.WriteAttributeString("url", it.Link);
// rssFeed.WriteAttributeString("length", it.Length.ToString());
// rssFeed.WriteAttributeString("type", it.Type);
// rssFeed.WriteEndElement();
// rssFeed.WriteElementString("category", it.Category);
// rssFeed.WriteElementString("pubDate", it.PubDate.ToString("R"));
// rssFeed.WriteEndElement();
//}
rssFeed.WriteEndElement();
rssFeed.WriteEndElement();
rssFeed.WriteEndDocument();
rssFeed.Flush();
rssFeed.Close();
Server.Transfer("~/Flash/PhotoGallery.xml");
Response.End();
}
</code>Sv: Xml on the fly