internal CssBox(CssBox parentBox, HtmlTag tag) : this(parentBox) { _htmltag = tag; }
/// <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); abox.Text = text; } else if(text != null && text.Length > 0) { CssAnonymousSpaceBox sbox = new CssAnonymousSpaceBox(curBox); sbox.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); abox.Text = finaltext; } }