static string Transform()

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;
        }