G
Guest
My situation is simple:
I have an Xml doc that I want to transform into another Xml doc.
I've tested the Xslt in an Xml editor and it works perfectly.
So in C# I create an Xml Document object and load the source xml. Then I
create the XslTransform object and load the xslt. I create a second Xml
document object to store the results of the transform.
There is no need at this stage to write the xml to disk.
The call I'm making to Transform is the one that requires a Stream object as
a parameter.
Here's a small section of the code:
XslTransform transformDoc = new XslTransform();
transformDoc.Load(transformDocumentsPath + xsltFile);
//if the file loaded successfully
if (transformDoc != null){
XmlDocument currentXml = new XmlDocument();
currentXml.Load(document); //document refers to another stream of data
uploaded via a website
if (currentXml != null && currentXml.ChildNodes.Count > 0){
XmlDocument resultXml = new XmlDocument();
FileStream stream = null;
transformDoc.Transform(currentXml.CreateNavigator(),null,stream,null);
resultXml.Load(stream);
return resultXml; }
My problem is with my understanding of how Streams work.
When I run this code I get an error saying that the Stream cannot be null,
which I understand. What I'm not getting though is that streams are for
reading and writing, does this just mean from files written to disk? Or could
I use a stream the way I attempting do it right now?
Thanks
Jacques
I have an Xml doc that I want to transform into another Xml doc.
I've tested the Xslt in an Xml editor and it works perfectly.
So in C# I create an Xml Document object and load the source xml. Then I
create the XslTransform object and load the xslt. I create a second Xml
document object to store the results of the transform.
There is no need at this stage to write the xml to disk.
The call I'm making to Transform is the one that requires a Stream object as
a parameter.
Here's a small section of the code:
XslTransform transformDoc = new XslTransform();
transformDoc.Load(transformDocumentsPath + xsltFile);
//if the file loaded successfully
if (transformDoc != null){
XmlDocument currentXml = new XmlDocument();
currentXml.Load(document); //document refers to another stream of data
uploaded via a website
if (currentXml != null && currentXml.ChildNodes.Count > 0){
XmlDocument resultXml = new XmlDocument();
FileStream stream = null;
transformDoc.Transform(currentXml.CreateNavigator(),null,stream,null);
resultXml.Load(stream);
return resultXml; }
My problem is with my understanding of how Streams work.
When I run this code I get an error saying that the Stream cannot be null,
which I understand. What I'm not getting though is that streams are for
reading and writing, does this just mean from files written to disk? Or could
I use a stream the way I attempting do it right now?
Thanks
Jacques