У меня есть следующая переменная, которая принимает имя файла:
var xtr = new XmlTextReader(xmlFileName) { WhitespaceHandling = WhitespaceHandling.None };
var xd = new XmlDocument();
xd.Load(xtr);
Я бы хотел изменить его, чтобы я мог передать объект. Я не хочу сначала сериализовать объект в файл.
Возможно ли это?
Обновление:
Мои первоначальные намерения заключались в том, чтобы взять документ xml, объединить некоторый xslt (сохраненный в файле), затем вывести и вернуть html ... вот так:
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();
}
В приведенном выше коде я читаю в xml из файла. Теперь я хотел бы просто поработать с объектом, прежде чем он будет сериализован в файл.
Итак, позвольте мне проиллюстрировать мою проблему, используя код
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);
}