{
var transformedXML = new StringBuilder();
XslCompiledTransform xslTransform = new XslCompiledTransform();
xslTransform.Load(transformXsltPath);
using (TextReader tr = new StringReader(wordDocXml))
{
// Load the xml of your main document part.
using (XmlReader reader = XmlReader.Create(tr))
{
using (MemoryStream ms = new MemoryStream())
{
XmlWriterSettings settings = xslTransform.OutputSettings.Clone();
// Configure xml writer to omit xml declaration.
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.OmitXmlDeclaration = true;
XmlWriter xw = XmlWriter.Create(ms, settings);
// Transform our OfficeMathML to MathML.
xslTransform.Transform(reader, xw);
ms.Seek(0, SeekOrigin.Begin);
using (StreamReader sr = new StreamReader(ms, Encoding.UTF8))
{
transformedXML.AppendLine(XMLHelper.RemoveAllNamespaces(sr.ReadToEnd()));
}
}
}
return transformedXML.ToString();
}
}