Trovare il nodo dell'Html grezzo corrispondente in un documento HtmlAgility Html
-
03-07-2019 - |
Domanda
Attualmente ho un programma che trova e modifica i file HTML in base alla ricerca di un tag con un ID corrispondente.
Vorrei estenderlo per trovare un tag che corrisponda a InnerHtml (ignorando le maiuscole e gli spazi bianchi)
Qual è un buon modo per usare Html Agility per farlo? Vorrei farlo usando Html Agility perché il resto del programma lo sta usando.
Grazie.
Soluzione
Ruota approssimativamente qui, ma dovresti essere in grado di fare qualcosa del genere:
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;
}
}
}
Altri suggerimenti
Lo abbiamo fatto usando le espressioni regolari. Qualcosa del genere funziona per noi:
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;
}
Spero che questo aiuti. :)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow