/// <summary> /// Parses the document /// </summary> private void ParseDocument() { InitialContainer root = this; MatchCollection tags = Parser.Match(Parser.HtmlTag, DocumentSource); CssBox curBox = root; int lastEnd = -1; foreach (Match tagmatch in tags) { string text = tagmatch.Index > 0 ? DocumentSource.Substring(lastEnd + 1, tagmatch.Index - lastEnd - 1) : string.Empty; if (!string.IsNullOrEmpty(text.Trim())) { CssAnonymousBox abox = new CssAnonymousBox(curBox) { Text = text }; } else if (text != null && text.Length > 0) { CssAnonymousSpaceBox sbox = new CssAnonymousSpaceBox(curBox) { Text = text }; } HtmlTag tag = new HtmlTag(tagmatch.Value); if (tag.IsClosing) { curBox = FindParent(tag.TagName, curBox); } else if (tag.IsSingle) { CssBox foo = new CssBox(curBox, tag); } else { curBox = new CssBox(curBox, tag); } lastEnd = tagmatch.Index + tagmatch.Length - 1; } string finaltext = DocumentSource.Substring((lastEnd > 0 ? lastEnd + 1 : 0), DocumentSource.Length - lastEnd - 1 + (lastEnd == 0 ? 1 : 0)); if (!string.IsNullOrEmpty(finaltext)) { CssAnonymousBox abox = new CssAnonymousBox(curBox) { Text = finaltext }; } }
/// <summary> /// Parses the document /// </summary> private void ParseDocument() { var root = this; var tags = Parser.Match(Parser.HtmlTag, DocumentSource); CssBox curBox = root; var lastEnd = -1; foreach (Match tagmatch in tags) { var text = tagmatch.Index > 0 ? DocumentSource.Substring(lastEnd + 1, tagmatch.Index - lastEnd - 1) : string.Empty; if (!string.IsNullOrEmpty(text.Trim())) { var abox = new CssAnonymousBox(curBox); abox.Text = text; } else if (text != null && text.Length > 0) { var sbox = new CssAnonymousSpaceBox(curBox); sbox.Text = text; } var tag = new HtmlTag(tagmatch.Value); if (tag.IsClosing) { curBox = FindParent(tag.TagName, curBox); } else if (tag.IsSingle) { var foo = new CssBox(curBox, tag); } else { curBox = new CssBox(curBox, tag); } lastEnd = tagmatch.Index + tagmatch.Length - 1; } var finaltext = DocumentSource.Substring(lastEnd > 0 ? lastEnd + 1 : 0, DocumentSource.Length - lastEnd - 1 + (lastEnd == 0 ? 1 : 0)); if (!string.IsNullOrEmpty(finaltext)) { var abox = new CssAnonymousBox(curBox); abox.Text = finaltext; } }