Re: Problem with MemoryStream
From: Nicholas Paldino [.NET/C# MVP] (mvp_at_spam.guard.caspershouse.com)
Date: 10/14/04
- Next message: Alberto: "Re: Trouble with event"
- Previous message: Reshma Prabhu: "Problem with MemoryStream"
- In reply to: Reshma Prabhu: "Problem with MemoryStream"
- Next in thread: Jon Skeet [C# MVP]: "Re: Problem with MemoryStream"
- Messages sorted by: [ date ] [ thread ]
Date: Thu, 14 Oct 2004 10:44:03 -0400
Reshma,
The problem here is that you are not resetting the position in the
stream back to the beginning, and therefore, the dataset bombs when trying
to read the contents. After the call to Transform, you have to reset the
stream, like this:
// Transform.
xslt.Transform(mydata,null,writer,null);
// Reset the stream pointer.
mstream.Seek(0, SeekOrigin.Begin);
Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mvp@spam.guard.caspershouse.com
"Reshma Prabhu" <ReshmaPrabhu@discussions.microsoft.com> wrote in message
news:F66FCD91-C8D9-4678-88D9-EFDB960E4B36@microsoft.com...
> hello,
> I am trying to do an xsl tranformation from an XML file into
> another xml file. I want the output file to be in MemoryStream so that my
> dataset can direclty read xml using
> dataset.ReadXml(memoryStream).
>
> But at the time of reading it gives following exception
> System.Xml.XmlException: The root element is missing.
>
> But if i write into a file and then read dataset from that then it works
> fine.
>
> PLEASE HELP ME
>
> The whole code is attached below
>
> Thanks,
> The whole code is
>
> using System;
> using System.Xml.Xsl;
> using System.Xml.XPath;
> using System.Xml;
> using System.IO;
> using System.Data;
>
> namespace XslMapper
> {
> class Class1
> {
> [STAThread]
> static void Main(string[] args)
> {
> //Create a new XslTransform object.
> XslTransform xslt = new XslTransform();
>
> //Load the style***.
> xslt.Load("Abc.xsl");
>
> //Create a new XPathDocument and load the XML data to be
> transformed.
> XPathDocument mydata = new XPathDocument("XYZ.xml");
>
> MemoryStream mstream = new MemoryStream();
>
> //Create an XmlTextWriter which outputs to the console.
> StreamWriter writer = new StreamWriter(mstream);
>
> xslt.Transform(mydata,null,writer,null);
> DataSet ds = new DataSet();
> ds.ReadXml(mstream);
> foreach (DataTable dt in ds.Tables)
> foreach ( DataRow dr in dt.Rows)
> foreach (DataColumn dc in dt.Columns)
> Console.WriteLine(dr[dc].ToString());
> re.Close();
>
> }
>
> }
>
> }
>
>
- Next message: Alberto: "Re: Trouble with event"
- Previous message: Reshma Prabhu: "Problem with MemoryStream"
- In reply to: Reshma Prabhu: "Problem with MemoryStream"
- Next in thread: Jon Skeet [C# MVP]: "Re: Problem with MemoryStream"
- Messages sorted by: [ date ] [ thread ]