Finding Nó de Matching Raw Html em uma HtmlAgility HtmlDocument
-
03-07-2019 - |
Pergunta
Actualmente tenho um programa que localiza e edições HTML arquivos com base em encontrar uma tag com um id correspondente.
Eu gostaria de estendê-lo para encontrar uma marca que tem correspondência InnerHtml (desconsiderando capitalização e espaços em branco)
O que é uma boa maneira de usar HTML agilidade para fazer isso? Gostaria de fazê-lo usando Html agilidade porque o resto do programa é usá-lo.
Graças.
Solução
áspero atirando-o aqui, mas você deve ser capaz de fazer algo parecido com isto:
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;
}
}
}
Outras dicas
Nós fizemos isso usando expressões regulares. Algo como isso funciona para nós:
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;
}
Espero que isso ajude. :)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow