How to create an XML document from a .NET object?

Posted by JL on Stack Overflow See other posts from Stack Overflow or by JL
Published on 2010-03-30T21:02:28Z Indexed on 2010/03/31 2:13 UTC
Read the original article Hit count: 362

Filed under:
|
|

I have the following variable that accepts a file name:

var xtr = new XmlTextReader(xmlFileName) { WhitespaceHandling = WhitespaceHandling.None };
var xd = new XmlDocument();
xd.Load(xtr);

I would like to change it so that I can pass in an object. I don't want to have to serialize the object to file first.

Is this possible?

Update:

My original intentions were to take an xml document, merge some xslt (stored in a file), then output and return html... like this:

public string TransformXml(string xmlFileName, string xslFileName)
{
     var xtr = new XmlTextReader(xmlFileName) { WhitespaceHandling = WhitespaceHandling.None };
     var xd = new XmlDocument();
     xd.Load(xtr);

     var xslt = new System.Xml.Xsl.XslCompiledTransform();
     xslt.Load(xslFileName);
     var stm = new MemoryStream();
     xslt.Transform(xd, null, stm);
     stm.Position = 1;
     var sr = new StreamReader(stm);
     xtr.Close();
     return sr.ReadToEnd();
}

In the above code I am reading in the xml from a file. Now what I would like to do is just work with the object, before it was serialized to the file.

So let me illustrate my problem using code

public string TransformXMLFromObject(myObjType myobj , string xsltFileName)
{
     // Notice the xslt stays the same.
     // Its in these next few lines that I can't figure out how to load the xml document (xd) from an object, and not from a file....

     var xtr = new XmlTextReader(xmlFileName) { WhitespaceHandling = WhitespaceHandling.None };
     var xd = new XmlDocument();
     xd.Load(xtr);
}

© Stack Overflow or respective owner

Related posts about c#

Related posts about Xml