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); } }
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); }