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.

Foi útil?

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
scroll top