public void TestingShorten() { var watch = new Stopwatch(); watch.Start(); var data = new HtmlTestData(); string source = data.HTML1; TagParser = new TagParser(source); string tagname = "p"; var start = false; int count = 0; int countto = 250; var tagender = new TagEnder(); string result = ""; TagParser.DoElement = stuff => { if (stuff.State == State.Name && stuff.Element == tagname) { start = true; } }; TagParser.DoTag = stuff => { tagender.Set(stuff.Tag, stuff.State); }; TagParser.DoText = stuff => { if (start) { count += stuff.Position - stuff.Origin; if (count > countto) { result = stuff.Text.ToString().Substring(0, stuff.Position); TagParser.Stop(); } } }; TagParser.Parse(); watch.Stop(); result = result + tagender.CloseTags(); ReportDetail(result); ReportDetail("Elapsed: " + watch.Elapsed); }
public void MissingEndTagsTest() { var watch = new Stopwatch(); watch.Start(); var data = new HtmlTestData(); string source = data.MissingEndTags1; TagParser = new TagParser(source); var tagender = new TagEnder(); string result = ""; var lastTagPosition = 0; TagParser.DoElement = stuff => { lastTagPosition = stuff.TagPosition; }; TagParser.DoTag = stuff => { var tag = tagender.Name(stuff.Tag); if (!tagender.Set(tag, stuff.State)) { var tagsend = tagender.CloseTag(tag); TagParser.Insert(lastTagPosition, tagsend); } }; TagParser.DoText = stuff => {}; TagParser.Parse(); watch.Stop(); result = TagParser.Stuff.Text.ToString(); ReportDetail(result); ReportDetail("Elapsed: " + watch.Elapsed); }