/// <summary> /// 从当前容器按照 CSS 选择器搜索符合要求的元素 /// </summary> /// <param name="container">要搜索子代元素的容器</param> /// <param name="expression">CSS 选择器</param> /// <returns>搜索到的符合要求的元素</returns> public static IEnumerable <IHtmlElement> Find(this IHtmlContainer container, string expression) { if (container == null) { throw new ArgumentNullException("container"); } return(CssSelector.Search(expression, container)); }
/// <summary> /// 获取符合条件的子代元素 /// </summary> /// <param name="container">要获取子代元素的容器对象</param> /// <param name="selector">用于筛选子代元素的选择器</param> /// <returns>符合选择器的容器的所有子代元素</returns> /// <remarks>与Find方法不同的是,Descendants方法的选择器会无限上溯,即当判断父代约束时,会无限上溯到文档根。而Find方法只会上溯到自身的子节点</remarks> public static IEnumerable <IHtmlElement> Descendants(this IHtmlContainer container, string selector) { return(CssSelector.Create(selector).Filter(Descendants(container))); }