Поиск узла соответствия необработанного HTML в HtmlAgility HtmlDocument - PullRequest
0 голосов
/ 04 марта 2009

В настоящее время у меня есть программа, которая находит и редактирует файлы HTML на основе поиска тега с соответствующим идентификатором.

Я бы хотел расширить его, чтобы найти тег, соответствующий InnerHtml (без учета заглавных букв и пробелов)

Какой хороший способ использовать Html Agility для этого? Я хотел бы сделать это с помощью Html Agility, потому что остальная часть программы использует его.

Спасибо.

Ответы [ 2 ]

1 голос
/ 04 марта 2009

Мы сделали это с помощью регулярных выражений. Как-то так у нас работает:

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

Надеюсь, это поможет. :)

1 голос
/ 04 марта 2009

Грубая стрельба здесь, но вы должны быть в состоянии сделать что-то вроде этого:

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