Esempio n. 1
0
        public void TestingReplace()
        {
            var watch = new Stopwatch();

            watch.Start();


            var    data   = new HtmlTestData();
            string source = data.HTML2;

            TagParser   = new TagParser(source);
            StyleParser = new StyleParser(source);

            var deleteat = -1;
            var styleit  = false;
            var result   = "";


            StyleParser.DoElement = stuff => {
                TagParser.Stuff = StyleParser.Stuff;
            };


            TagParser.DoElement = stuff => {
                if (stuff.State.Equals(State.Name))
                {
                    if (stuff.Element.Equals("span"))
                    {
                        deleteat = stuff.TagPosition;
                    }
                    else if (stuff.Element.Equals("style"))
                    {
                        styleit = true;
                    }
                }
                else if (stuff.State.Equals(State.Endtag))
                {
                    if (stuff.Element.Equals("/span"))
                    {
                        deleteat = stuff.TagPosition;
                    }
                }
                else if (stuff.State.Equals(State.Value))
                {
                    if (stuff.Element.Equals("Flieatext"))
                    {
                        TagParser.Replace(stuff.Origin, stuff.Position, "Inhalt");
                    }
                }
            };

            TagParser.DoTag = stuff => {
                if (stuff.TagPosition == deleteat)
                {
                    TagParser.Remove(stuff.TagPosition, stuff.Position);
                    deleteat = -1;
                }
                else if (styleit)
                {
                    StyleParser.Stuff = TagParser.Stuff;
                    StyleParser.Parse();
                    styleit = false;
                }
                else
                {
                }
            };

            TagParser.DoText = stuff => { };

            TagParser.Parse();

            watch.Stop();


            ReportDetail(TagParser.Stuff.Text.ToString());

            ReportDetail(result);
            ReportDetail("Vergangene Zeit: " + watch.Elapsed);
        }