Поиск узла соответствия необработанному Html в HtmlAgility HTMLDocument
-
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;
}
Надеюсь, это поможет.:)
Не связан с StackOverflow