public string GetHtml()
        {
            XmlDocument html = new XmlDocument();

            html.AppendChild(html.CreateElement("html"));
            XmlElement element = (XmlElement)(html.DocumentElement.AppendChild(html.CreateElement("head")));

            HeadWriter.Flush();
            Encoding charset = CharSet;

            element.InnerXml = CharSet.GetString(_headStream.ToArray());
            element          = (XmlElement)(html.DocumentElement.AppendChild(html.CreateElement("head")));
            BodyWriter.Flush();
            element.InnerXml = CharSet.GetString(_bodyStream.ToArray());
            using (MemoryStream ms = new MemoryStream())
            {
                using (StreamWriter sw = new StreamWriter(ms, charset))
                {
                    sw.WriteLine("<!DOCTYPE html>");
                    XmlWriterSettings settings = BodyWriter.Settings.Clone();
                    settings.ConformanceLevel = ConformanceLevel.Document;
                    using (XmlWriter writer = XmlWriter.Create(sw, settings))
                    {
                        html.WriteTo(writer);
                        writer.Flush();
                        return(charset.GetString(ms.ToArray()));
                    }
                }
            }
        }