예제 #1
0
        HtmlElement Insert(Token.StartTag startTag)
        {
            HtmlElementDefinition tag = TagLibrary.GetTag(startTag.Name);

            // TODO: wonder if for xml parsing, should treat all tags as unknown? because it's not html.
            HtmlElement el = new HtmlElement(startTag.Name, startTag.Attributes);

            InsertNode(el);

            if (startTag.IsSelfClosing)
            {
                tokeniser.AcknowledgeSelfClosingFlag();
                // TODO Change to schema is not ideal
                if (!tag.IsReadOnly && tag.IsUnknownTag)   // unknown tag, remember this is self closing for output. see above.
                {
                    tag.IsSelfClosing = true;
                    tag.IsEmpty       = true;
                }
            }
            else
            {
                stack.AddLast(el);
            }
            return(el);
        }
예제 #2
0
        public HtmlElement InsertEmpty(Token.StartTag startTag)
        {
            // TODO Use the semantic element here (via the factory)
            HtmlElementDefinition tag = TagLibrary.GetTag(startTag.Name);
            HtmlElement           el  = new HtmlElement(startTag.Name, startTag.Attributes);

            InsertNode(el);
            if (startTag.IsSelfClosing)
            {
                tokeniser.AcknowledgeSelfClosingFlag();

                // TODO This change to the schema is not ideal
                if (!tag.IsReadOnly && tag.IsUnknownTag)  // unknown tag, remember this is self closing for output
                {
                    tag.IsSelfClosing = true;
                    tag.IsEmpty       = true;
                }
            }

            return(el);
        }