Esempio n. 1
0
        /// <summary>
        /// Fills this HtmlPage's Tags list by parsing UnparsedLiteral field value
        /// </summary>
        public void ParseFromUnparsedLiteral()
        {
            if (UnparsedLiteral != null && UnparsedLiteral.Length > 0)
            {
                List <string> tagsStrings = Serialize.SplitByRootTags(UnparsedLiteral);

                Tags.Clear();                 //in case it is not first parsing
                foreach (string tagString in tagsStrings)
                {
                    HtmlTag tag = new HtmlTag();
                    tag.UnparsedLiteral = tagString;
                    tag.ParseFromUnparsedLiteral();
                    Tags.Add(tag);
                }
            }
        }
Esempio n. 2
0
        public void ParseFromUnparsedLiteral()
        {
            if (UnparsedLiteral != null && UnparsedLiteral.Length > 0)
            {
                int index = 0;
                int closingBracketIndex = -1;
                while (index < UnparsedLiteral.Length)
                {
                    if (UnparsedLiteral[index] == Serialize.HtmlTagClosingBracket)
                    {
                        closingBracketIndex = index;
                        break;
                    }
                    index++;
                }

                if (closingBracketIndex < 0)                 //if this segment of HTML is incorrect
                {
                    return;
                }

                string tagHeader = UnparsedLiteral.Substring(0, closingBracketIndex + 1);
                ParseNameAndAttributesFromTagHeader(tagHeader);

                string tagNestedContents = UnparsedLiteral.Substring(closingBracketIndex + 1); //remove opening tag
                if (tagNestedContents.Length > 0)                                              //remove closing tag
                {
                    int indexOfClosingTagStart = tagNestedContents.LastIndexOf(Serialize.HtmlClosingTagNamePrefix) - 1;
                    if (indexOfClosingTagStart >= 0)
                    {
                        tagNestedContents = tagNestedContents.Substring(0, indexOfClosingTagStart);
                    }
                }

                List <string> tagsStrings = Serialize.SplitByRootTags(tagNestedContents);

                NestedTags.Clear();                 //in case it is not first parsing
                foreach (string tagString in tagsStrings)
                {
                    HtmlTag tag = new HtmlTag();
                    tag.UnparsedLiteral = tagString;
                    tag.ParseFromUnparsedLiteral();
                    NestedTags.Add(tag);
                }
            }
        }