Guest User

generateHtmlFromXmlUsingXslt

a guest
Jul 18th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.11 KB | None | 0 0
  1. private string GenerateHtml(string xml)
  2. {
  3.     var doc = new XmlDocument();
  4.     doc.LoadXml(xml);
  5.  
  6.     return TransformXml(doc);
  7. }
  8.  
  9. private string TransformXml(XmlDocument doc)
  10. {
  11.     var transform = new XslCompiledTransform();
  12.     if (doc.DocumentElement == null)
  13.     {
  14.         throw new Exception("blablabla");
  15.     }
  16.  
  17.     using (var reader = new XmlNodeReader(doc.DocumentElement))
  18.     {
  19.         using (var stringReader = new StringReader(EmbedCssIntoXslt(viewModel)))
  20.         {
  21.             using (var resourcesReader = XmlReader.Create(stringReader))
  22.             {
  23.                 transform.Load(resourcesReader, new XsltSettings { EnableScript = true }, new XmlUrlResolver());
  24.                 using (var writer = new Utf8StringWriter())
  25.                 {
  26.                     transform.Transform(reader, null, writer);
  27.                     return writer.ToString();
  28.                 }
  29.             }
  30.         }
  31.     }
  32. }
  33.  
  34. private string EmbedCssIntoXslt()
  35. {
  36.     var xDoc = new XmlDocument();
  37.     xDoc.LoadXml(Resources.text); // point at your .XSLT
  38.     var styleNode = xDoc.CreateNode(XmlNodeType.Element, "style", null);
  39.     styleNode.InnerText = Resources.textStyle; // point at your .CSS
  40.     xDoc.SelectSingleNode("//head")?.AppendChild(styleNode);
  41.     return xDoc.InnerXml;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment