Mega Code Archive

 
Categories / C# / XML
 

Perform an XSL Transformation using XML and XSL content and with some XSLT arguments

using System; using System.IO; using System.Text; using System.Xml; using System.Xml.XPath; using System.Xml.Xsl; namespace SharePointOfView.Utilities {     /// <summary>     /// SharePointOfView XSLT Utility class     /// </summary>     public static class XSLT     {         /// <summary>         /// Perform an XSL Transformation using XML and XSL content         /// </summary>         /// <param name="xmlContent">XML source</param>         /// <param name="xsltContent">XSL source</param>         /// <returns>HTML</returns>         public static string XSLTransform(string xmlContent, string xsltContent)         {             return XSLTransform(xmlContent, xsltContent, null);         }         /// <summary>         /// Perform an XSL Transformation using XML and XSL content and with some XSLT arguments         /// </summary>         /// <param name="xmlContent">XML source</param>         /// <param name="xsltContent">XSL source</param>         /// <param name="xsltArgs">XSLT argument list</param>         /// <returns>HTML</returns>         public static string XSLTransform(string xmlContent, string xsltContent, XsltArgumentList xsltArgs)         {             string s;             try             {                 // Initialize a memorystring for output                 MemoryStream mem = new MemoryStream();                 // Initialize a StreamReader using the MemoryStream                 StreamReader sr = new StreamReader(mem, UTF8Encoding.UTF8);                 // Initialize an XSLTransform object                 XslTransform xTrans = new XslTransform();                 // Load XML Content                 XmlTextReader xmlReader = new XmlTextReader(xmlContent, XmlNodeType.Document, null);                 XPathDocument xmlDoc = new XPathDocument(xmlReader);                 // Load XSL Content                 XmlTextReader xslReader = new XmlTextReader(xsltContent, XmlNodeType.Document, null);                 XPathDocument xslDoc = new XPathDocument(xslReader);                 // Load XSL into transform                 xTrans.Load(xslDoc.CreateNavigator());                 // Perform transformation                 xTrans.Transform(xmlDoc.CreateNavigator(), xsltArgs, mem);                 // Copy stream to string                 mem.Position = 0;                 s = sr.ReadToEnd();                 sr.Close();                 mem.Close();             }             catch (Exception ex)             {                 s = ex.Message;             }             return s;         }     } }