У меня есть функция, которая принимает 2 параметра: 1 = файл XML, 2 = файл XSLT, затем выполняет преобразование и возвращает полученный HTML-код.
Вот функция:
/// <summary>
/// Will apply an XSLT style to any XML file and return the rendered HTML.
/// </summary>
/// <param name="xmlFileName">
/// The file name of the XML document.
/// </param>
/// <param name="xslFileName">
/// The file name of the XSL document.
/// </param>
/// <returns>
/// The rendered HTML.
/// </returns>
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, а вместо этого просто объект.
Объект точно совместим с xslt, если он был сериализован в файл. Но я не хочу сначала сериализовать его в файл.
Итак, подведем итоги: сохраняйте xslt из файла, но ввод xml должен передаваться объектом, который я передаю, и хотел бы создать xml без какого-либо взаимодействия с файловой системой.