public static bool IsEmptyElement(string name) { if (name == null) { throw new ArgumentNullException("name"); } if (name.Length == 0) { return(true); } if ('!' == name[0]) { return(true); } if ('?' == name[0]) { return(true); } if (!ElementsFlags.ContainsKey(name.ToLower())) { return(false); } HtmlElementFlag flag = ElementsFlags[name.ToLower()]; return((flag & HtmlElementFlag.Empty) != 0); }
private static void RemoveSetting(string tag, HtmlElementFlag flag) { if (HtmlNode.ElementsFlags.ContainsKey(tag)) { HtmlNode.ElementsFlags[tag] = HtmlNode.ElementsFlags[tag] & ~flag; } }
public static bool IsClosedElement(string name) { if (name == null) { throw new ArgumentNullException("name"); } HtmlElementFlag htmlElementFlag = HtmlNode.ElementsFlags.TryGetValue(name.ToLowerFast()); return((htmlElementFlag & HtmlElementFlag.Closed) != (HtmlElementFlag)0); }
public static bool IsClosedElement(string name) { if (name == null) { throw new ArgumentNullException("name"); } if (!ElementsFlags.ContainsKey(name.ToLower())) { return(false); } HtmlElementFlag flag = ElementsFlags[name.ToLower()]; return((flag & HtmlElementFlag.Closed) != 0); }
/// <summary> /// Determines if an element node can be kept overlapped. /// </summary> /// <param name="name">The name of the element node to check. May not be <c>null</c>.</param> /// <returns>true if the name is the name of an element node that can be kept overlapped, <c>false</c> otherwise.</returns> public static bool CanOverlapElement(string name) { if (name == null) { throw new ArgumentNullException("name"); } if (!ElementsFlags.ContainsKey(name.ToLower())) { return false; } HtmlElementFlag flag = ElementsFlags[name.ToLower()]; return (flag & HtmlElementFlag.CanOverlap) != 0; }
public static bool IsEmptyElement(string name) { if (name == null) { throw new ArgumentNullException("name"); } if (name.Length == 0) { return(true); } if ('!' == name[0]) { return(true); } if ('?' == name[0]) { return(true); } HtmlElementFlag htmlElementFlag = HtmlNode.ElementsFlags.TryGetValue(name.ToLowerFast()); return((htmlElementFlag & HtmlElementFlag.Empty) != (HtmlElementFlag)0); }
public bool IsWebContentChanged(string url, string ID, string @class, string lastContent, out string changedContent) { try { using (WebClient wc = new WebClient()) { //string stringThatKeepsYourHtml = "<div id=...."; HtmlDocument doc = new HtmlDocument(); HtmlElementFlag hl = new HtmlElementFlag(); doc.LoadHtml(wc.DownloadString(url)); //doc.LoadHtml(stringThatKeepsYourHtml); string content = doc.Text; //content = content.Replace("</div>", ""); if (ID.Length > 0) { content = doc.GetElementbyId(ID).InnerHtml; } else { content = doc.DocumentNode.SelectSingleNode("//div[@class='" + @class + "']").OuterHtml; Debug.WriteLine("Checking content " + url); Debug.WriteLine("Content first = " + content); Debug.WriteLine(content); } List <string> removers = new List <string>(); try { removers.AddRange(doc.DocumentNode.SelectNodes("//img[@class='wp-post-image']").Select(x => x.OuterHtml).ToList()); } catch { } try { removers.AddRange(doc.DocumentNode.SelectNodes("//a[@class='__cf_email__']").Select(x => x.OuterHtml).ToList()); } catch { } try { removers.AddRange(doc.DocumentNode.SelectNodes("//div[@class='grid-container grid-container__classic tc-grid-shadow tc-grid-border tc-grid-hover-move']").Select(x => x.OuterHtml).ToList()); } catch { } foreach (string remover in removers) { Debug.WriteLine("remover = " + remover); content = content.Replace(remover, ""); } content = content.Replace(" ", ""); content = content.Replace(System.Environment.NewLine, ""); content = Regex.Replace(content, @"\t|\n|\r", ""); if (lastContent != content) { changedContent = content; return(true); } wc.Dispose(); } } catch { } changedContent = string.Empty; return(false); }