Trouver un nœud de correspondance HTML brut dans un document HtmlAgility HtmlDocument
-
03-07-2019 - |
Question
J'ai actuellement un programme qui trouve et édite des fichiers HTML en recherchant une balise avec un identifiant correspondant.
J'aimerais l'étendre pour trouver une balise dont le nom correspond à InnerHtml (sans tenir compte de la capitalisation ni des espaces)
Quel est le bon moyen d’utiliser Html Agility pour ce faire? Je voudrais le faire en utilisant HTML Agility parce que le reste du programme l’utilise.
Merci.
La solution
Je ne peux pas tirer ici mais vous devriez pouvoir faire quelque chose comme ça:
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;
}
}
}
Autres conseils
Nous avons utilisé des expressions régulières. Quelque chose comme ça marche pour nous:
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;
}
J'espère que ça aide. :)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow