在HtmlAgility HtmlDocument中查找匹配原始Html的节点

时间:2009-03-03 21:24:54

标签: c# html-agility-pack

我目前有一个程序,可以根据查找匹配ID的标记来查找和编辑HTML文件。

我想扩展它以找到一个匹配InnerHtml的标签(忽略大写和空白)

使用Html Agility执行此操作的好方法是什么?我想使用Html Agility来实现它,因为程序的其余部分正在使用它。

感谢。

2 个答案:

答案 0 :(得分:1)

在这里粗暴射击,但你应该可以做这样的事情:

            HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("YOUR_TAG_SELECTOR");

            if (nodes != null)
            {
                foreach (HtmlNode node in nodes)
                {
                    if (node.InnerHtml.ToLower().Trim() == "YOUR_MATCH")
                    {
                        //success routine
                        break;
                    }
                }
            }

答案 1 :(得分:1)

我们使用正则表达式完成了这项工作。 这样的事情对我们有用:

private static List<HtmlNode> GetMatchingNodes(string xPath, string pattern, HtmlDocument htmlDocument)
{
    List<HtmlNode> matchingNodes = new List<HtmlNode>();
    foreach (HtmlNode node in htmlDocument.DocumentNode.SelectNodes(xPath))
    {
        if (Regex.IsMatch(node.InnerHtml, pattern))
        {
            matchingNodes.Add(node);
        }
    }
    return matchingNodes;
}

希望这会有所帮助。 :)