/* create style element using rules from dictionary */ private void CreateStyleElement(Lexer lexer, Node doc) { Style style; if (lexer.Styles == null && NiceBody(lexer, doc)) { return; } Node node = lexer.NewNode(Node.START_TAG, null, 0, 0, "style"); node.Isimplicit = true; /* insert type attribute */ var av = new AttVal(null, null, '"', "type", "text/css"); av.Dict = AttributeTable.DefaultAttributeTable.FindAttribute(av); node.Attributes = av; Node body = doc.FindBody(lexer.Options.TagTable); lexer.Txtstart = lexer.Lexsize; if (body != null) { CleanBodyAttrs(lexer, body); } for (style = lexer.Styles; style != null; style = style.Next) { lexer.AddCharToLexer(' '); lexer.AddStringLiteral(style.Tag); lexer.AddCharToLexer('.'); lexer.AddStringLiteral(style.TagClass); lexer.AddCharToLexer(' '); lexer.AddCharToLexer('{'); lexer.AddStringLiteral(style.Properties); lexer.AddCharToLexer('}'); lexer.AddCharToLexer('\n'); } lexer.Txtend = lexer.Lexsize; Node.InsertNodeAtEnd(node, lexer.NewNode(Node.TEXT_NODE, lexer.Lexbuf, lexer.Txtstart, lexer.Txtend)); /* now insert style element into document head doc is root node. search its children for html node the head node should be first child of html node */ Node head = doc.FindHead(lexer.Options.TagTable); if (head != null) { Node.InsertNodeAtEnd(head, node); } }