Поиск узла соответствия необработанному Html в HtmlAgility HTMLDocument

StackOverflow https://stackoverflow.com/questions/608274

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

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

Спасибо.

Это было полезно?

Решение

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top