// Turns the provided ECMA XML node into HTML and appends it to the current node on the rendered HTML public static void AppendEcmaNode(this IEditorWindow editorWindow, XElement ecmaXml) { if (editorWindow.CurrentObject != null) { var html = DocConverter.ToHtml(ecmaXml, "", editorWindow.CurrentObject.DocumentDirectory); editorWindow.RunJS("insertHtmlAfterCurrentNode", WebViewExtensions.EscapeHtml(html)); } }
public string ToHtml(XElement root) { return(DocConverter.ToHtml(root, "inmemory", DocumentDirectory)); }
public string GetHtmlForNode(XElement element, string xpath) { return(DocConverter.ToHtml(element.XPathSelectElement(xpath), Name.ToString(), DocumentDirectory)); }
static void Process(XDocument d, string path) { var elements = d.XPathSelectElements(path); foreach (var element in elements) { var str = element.ToString(); //Console.WriteLine (str); var html = DocConverter.ToHtml(element, currentFile, Path.GetDirectoryName(path)); var ret = DocConverter.ToXml(html); var sb = new StringBuilder(); foreach (var c in element.Nodes()) { sb.Append(c.ToString()); } var expected = sb.ToString(); //estr = estr.Replace (" />", "/>"); sb.Clear(); foreach (var c in ret) { try { if (c is XComment) { sb.Append((c as XComment).Value); } else { sb.Append(c.ToString()); } } catch (ArgumentException e) { // An XML comment cannot end with "-" looks like a bug } } var result = sb.ToString(); if (expected != result) { var diff = new XmlDiff(XmlDiffOptions.IgnoreWhitespace); var xexpected = new XmlTextReader(new StringReader("<group>" + expected + "</group>")); var xresult = new XmlTextReader(new StringReader("<group>" + result + "</group>")); var equal = diff.Compare(xexpected, xresult); //, new XmlTextWriter (Console.Out)); if (!equal && expected != result) { bool found = false; for (int i = 0; i < expected.Length && i < result.Length; i++) { if (expected [i] != result [i]) { Report(expected, result, i); // We redo the steps above, purely as it is easier to debug what happened right after // the error is reported. html = DocConverter.ToHtml(element, currentFile, Path.GetDirectoryName(path)); ret = DocConverter.ToXml(html); found = true; break; } } if (!found) { Report(expected, result, Math.Min(expected.Length, result.Length)); } } } } }