Exemplo n.º 1
0
 public NodeValueComparer(NodeValueComparison comparison)
 {
     this.comparison = comparison;
 }
Exemplo n.º 2
0
 /// <summary>
 /// Gets the nodes followed by value.
 /// </summary>
 /// <param name="nodes">The nodes.</param>
 /// <param name="name">The name.</param>
 /// <param name="value">The value.</param>
 /// <param name="comparison">The comparison.</param>
 /// <returns></returns>
 public static IEnumerable <HtmlNode> GetNodesFollowedByValue(this IEnumerable <HtmlNode> nodes, string name, string value, NodeValueComparison comparison = NodeValueComparison.Equals)
 {
     return(nodes.SelectMany(node => node.GetNodesFollowedByValue(name, value, comparison)));
 }
Exemplo n.º 3
0
        /// <summary>
        /// Gets the next table line value.
        /// </summary>
        /// <param name="node">The node.</param>
        /// <param name="name">The name.</param>
        /// <param name="comparison">The comparison type.</param>
        /// <returns></returns>
        public static HtmlValue GetNextTableLineValue(this HtmlNode node, string name, NodeValueComparison comparison = NodeValueComparison.Equals)
        {
            var results = GetNodesFollowedByValue(node, "tr", name, comparison);

            if (!results.Any())
            {
                return(null);
            }

            var innerText = results.FirstOrDefault().InnerText.CleanInnerHtmlAscii().CleanInnerText();

            if (innerText.StartsWith(":"))
            {
                innerText = innerText.Substring(1).CleanInnerHtmlAscii().CleanInnerText();
            }

            return(innerText);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Gets the nodes followed by value.
        /// </summary>
        /// <param name="node">The node.</param>
        /// <param name="name">The name.</param>
        /// <param name="value">The value.</param>
        /// <param name="comparison">The comparison.</param>
        /// <returns></returns>
        public static IEnumerable <HtmlNode> GetNodesFollowedByValue(this HtmlNode node, string name, string value, NodeValueComparison comparison = NodeValueComparison.Equals)
        {
            var comparer  = new NodeValueComparer(comparison);
            var cleanName = value.CleanInnerText();

            return((from d in node.Descendants(name)
                    where comparer.Compare(d.InnerText.CleanInnerHtmlAscii().CleanInnerText(), cleanName)
                    select d.GetNextSibling(name)).ToArray());
        }