Revision: 15776
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at July 16, 2009 15:41 by mtelligent
Initial Code
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
namespace [[Name Space]]
{
public class [[Class Name]]
{
/// <summary>
/// Transforms the supplied xml using the supplied xslt and returns the
/// result of the transformation
/// </summary>
/// <param name="xml">The xml to be transformed</param>
/// <param name="xslt">The xslt to transform the xml</param>
/// <returns>The transformed xml</returns>
public string TransformXml(string xml, string xslt)
{
// Simple data checks
if (string.IsNullOrEmpty(xml))
{
throw new ArgumentException("Param cannot be null or empty", "xml");
}
if (string.IsNullOrEmpty(xslt))
{
throw new ArgumentException("Param cannot be null or empty", "xslt");
}
// Create required readers for working with xml and xslt
StringReader xsltInput = new StringReader(xslt);
StringReader xmlInput = new StringReader(xml);
XmlTextReader xsltReader = new XmlTextReader(xsltInput);
XmlTextReader xmlReader = new XmlTextReader(xmlInput);
// Create required writer for output
StringWriter stringWriter = new StringWriter();
XmlTextWriter transformedXml = new XmlTextWriter(stringWriter);
// Create a XslCompiledTransform to perform transformation
XslCompiledTransform xsltTransform = new XslCompiledTransform();
try
{
xsltTransform.Load(xsltReader, new XsltSettings(true, true), null);
xsltTransform.Transform(xmlReader, transformedXml);
}
catch (XmlException xmlEx)
{
// TODO : log - "Could not load XSL transform: \n\n" + xmlEx.Message
throw;
}
catch (XsltException xsltEx)
{
// TODO : log - "Could not process the XSL: \n\n" + xsltEx.Message + "\nOn line " + xsltEx.LineNumber + " @ " + xsltEx.LinePosition)
throw;
}
catch (Exception ex)
{
// TODO : log
throw;
}
return stringWriter.ToString();
}
}
}
Initial URL
Initial Description
Initial Title
XSLT Helper class
Initial Tags
Initial Language
C#