internal virtual iText.StyledXmlParser.Jsoup.Nodes.Element InsertEmpty(Token.StartTag startTag) { iText.StyledXmlParser.Jsoup.Parser.Tag tag = iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf(startTag.Name( )); iText.StyledXmlParser.Jsoup.Nodes.Element el = new iText.StyledXmlParser.Jsoup.Nodes.Element(tag, baseUri, startTag.attributes); InsertNode(el); if (startTag.IsSelfClosing()) { if (tag.IsKnownTag()) { if (tag.IsSelfClosing()) { tokeniser.AcknowledgeSelfClosingFlag(); } } else { // if not acked, promulagates error // unknown tag, remember this is self closing for output tag.SetSelfClosing(); tokeniser.AcknowledgeSelfClosingFlag(); } } // not an distinct error return(el); }
internal virtual iText.StyledXmlParser.Jsoup.Nodes.Element Insert(Token.StartTag startTag) { // handle empty unknown tags // when the spec expects an empty tag, will directly hit insertEmpty, so won't generate this fake end tag. if (startTag.IsSelfClosing()) { iText.StyledXmlParser.Jsoup.Nodes.Element el = InsertEmpty(startTag); stack.Add(el); tokeniser.Transition(TokeniserState.Data); // handles <script />, otherwise needs breakout steps from script data tokeniser.Emit(((Token.Tag)emptyEnd.Reset()).Name(el.TagName())); // ensure we get out of whatever state we are in. emitted for yielded processing return(el); } iText.StyledXmlParser.Jsoup.Nodes.Element el_1 = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag .ValueOf(startTag.Name()), baseUri, startTag.attributes); Insert(el_1); return(el_1); }
internal virtual iText.StyledXmlParser.Jsoup.Nodes.Element Insert(Token.StartTag startTag) { iText.StyledXmlParser.Jsoup.Parser.Tag tag = iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf(startTag.Name( )); // todo: wonder if for xml parsing, should treat all tags as unknown? because it's not html. iText.StyledXmlParser.Jsoup.Nodes.Element el = new iText.StyledXmlParser.Jsoup.Nodes.Element(tag, baseUri, startTag.attributes); InsertNode(el); if (startTag.IsSelfClosing()) { tokeniser.AcknowledgeSelfClosingFlag(); if (!tag.IsKnownTag()) { // unknown tag, remember this is self closing for output. see above. tag.SetSelfClosing(); } } else { stack.Add(el); } return(el); }