Exemple #1
0
        /// <summary>
        /// Utility for properly printing the end tag for an element.
        /// This utility takes care of including/suppressing end tags for empty nodes properly.
        /// </summary>
        /// <param name="writer"></param>
        /// <param name="element"></param>
        private static void printElementEnd(HtmlWriter writer, IHTMLElement element)
        {
            // No tagName, no end tag.
            if (string.IsNullOrEmpty(element.tagName))
            {
                return;
            }

            if (ElementFilters.RequiresEndTag(element))
            {
                writer.WriteEndElement(true);
            }
            else
            {
                writer.WriteEndElement(false);
            }
        }
Exemple #2
0
        private static string BalanceHtml(string html)
        {
            StringBuilder sb = new StringBuilder(html.Length + 10);

            SimpleHtmlParser parser = new SimpleHtmlParser(html);
            Element          el;

            while (null != (el = parser.Next()))
            {
                if (el is BeginTag)
                {
                    BeginTag bt = (BeginTag)el;
                    if (!ElementFilters.RequiresEndTag(bt.Name))
                    {
                        bt.Complete = true;
                    }
                }
                sb.Append(el.ToString());
            }

            return(sb.ToString());
        }