Esempio n. 1
0
        private void ExtractAnchorLink(int startTag)
        {
            HtmlNode node = GetNode(startTag);
            string   url  = node.GetAttributeValue(HtmlAttributeId.Href);

            if (url != null && url.Length > 0)
            {
                LinkItem linkItem = new LinkItem();
                linkItem.LinkSource = LinkSourceType.Anchor;
                linkItem.Url        = url;

                int endTag = parsedHtml.FindEndTag(startTag + 1, GetNode(startTag).TagId);

                // This is to avoid <A> ....<A> .... </A>
                for (int i = startTag + 1; i < endTag; i++)
                {
                    if (IsLinkSeparator(parsedHtml.Nodes[i]))
                    {
                        endTag = i;
                        break;
                    }
                }

                if (endTag > 0 && endTag < parsedHtml.Nodes.Count)
                {
                    linkItem.AnchorText = parsedHtml.TextBetween(startTag, endTag);
                    //linkItem.NodeStack = GetNodeStack(startTag, endTag);
                    linkItem.LeftText  = GetLeftNearText(startTag);
                    linkItem.RightText = GetRightNearText(endTag);
                }
                AddLink(linkItem);
            }
        }
Esempio n. 2
0
        public static List <HtmlForm> ParseForms(List <HtmlNode> nodes)
        {
            List <HtmlForm> forms = new List <HtmlForm>();

            for (int i = 0; i < nodes.Count; i++)
            {
                if (nodes[i].IsStartTag(HtmlTagId.Form))
                {
                    int startTag = i;
                    int endTag   = ParsedHtml.FindEndTag(nodes, startTag + 1, HtmlTagId.Form);
                    if (endTag > 0)
                    {
                        HtmlForm form = HtmlForm.Parse(nodes, startTag, endTag);
                        if (form != null)
                        {
                            forms.Add(form);
                        }
                        i = endTag;
                    }
                }
            }

            return(forms);
        }