diff --git a/src/Gemstone/StringExtensions/StringExtensions.cs b/src/Gemstone/StringExtensions/StringExtensions.cs
index 3a4c2e1693..925f627cb0 100644
--- a/src/Gemstone/StringExtensions/StringExtensions.cs
+++ b/src/Gemstone/StringExtensions/StringExtensions.cs
@@ -103,6 +103,8 @@
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
+using System.Xml;
+using System.Xml.Xsl;
using Gemstone.CharExtensions;
namespace Gemstone.StringExtensions;
@@ -2606,4 +2608,23 @@ string ReadQuoted()
return token.ToString();
}
}
+
+ ///
+ /// Transforms an XML document using the given XSL template.
+ ///
+ /// The document to be transformed.
+ /// The template that defines how the data should be transformed.
+ /// The result of the transformation.
+ public static string ApplyXSLTransform(this string document, string transform)
+ {
+ using StringReader input = new StringReader(document);
+ using StringReader input2 = new StringReader(transform);
+ using XmlReader input3 = XmlReader.Create(input);
+ using XmlReader stylesheet = XmlReader.Create(input2);
+ using StringWriter stringWriter = new StringWriter();
+ XslCompiledTransform xslCompiledTransform = new XslCompiledTransform();
+ xslCompiledTransform.Load(stylesheet);
+ xslCompiledTransform.Transform(input3, null, stringWriter);
+ return stringWriter.ToString();
+ }
}