예제 #1
0
 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);
 }
예제 #2
0
 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);
 }
예제 #3
0
 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);
 }