in SmvLibrary/Utility.cs [1044:1094]
static string Transform(string filePath)
{
// Reading the input XML file
XmlDocument document = new XmlDocument();
document.Load(filePath);
XmlReaderSettings xmlReaderSettings = new XmlReaderSettings();
xmlReaderSettings.IgnoreWhitespace = true;
XmlReader xmlReader = XmlReader.Create(new StringReader(document.OuterXml), xmlReaderSettings);
XslCompiledTransform xslTransform = new XslCompiledTransform();
XsltSettings xsltSettings = new XsltSettings(true, true);
// Get Tranformation file
string xsltFilePath = Path.Combine(GetSmvVar("assemblyDir"), xsltFileName);
try
{
xslTransform.Load(xsltFilePath, xsltSettings, new XmlUrlResolver());
}
catch (Exception e)
{
Log.LogFatalError("Exception occurred while looking for the Tranformation XSLT file" + e);
return null;
}
// Prepare memory stream
Stream memStream = new MemoryStream();
StreamWriter streamWriter = new StreamWriter(memStream);
// Prepare arguments with path to the modules
XsltArgumentList xsltArgumentList = new XsltArgumentList();
xsltArgumentList.AddParam("absolute-path", "", Path.GetDirectoryName(filePath) + Path.DirectorySeparatorChar);
// Transform input xml to output in memoryStream
try
{
xslTransform.Transform(xmlReader, xsltArgumentList, streamWriter);
}
catch (Exception e)
{
Log.LogError("Exception occurred while transforming modules of XML " + e);
return null;
}
Log.LogDebug("Transformation successful");
streamWriter.Flush();
memStream.Position = 0;
// Convert memoryStream to string
StreamReader streamReader = new StreamReader(memStream);
string xmlContents = streamReader.ReadToEnd();
streamWriter.Close();
return xmlContents;
}