Encontrar el nodo de un html sin procesar en un HtmlAgility HtmlDocument
-
03-07-2019 - |
Pregunta
Actualmente tengo un programa que encuentra y edita archivos HTML basados ??en la búsqueda de una etiqueta con un ID coincidente.
Me gustaría extenderlo para encontrar una etiqueta que tenga InnerHtml (sin tener en cuenta las mayúsculas y los espacios en blanco)
¿Cuál es una buena manera de usar Html Agility para hacer esto? Me gustaría hacerlo usando Html Agility porque el resto del programa lo está utilizando.
Gracias.
Solución
Dispáralo aquí, pero deberías poder hacer algo como esto:
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;
}
}
}
Otros consejos
Hemos hecho esto usando expresiones regulares. Algo como esto funciona para nosotros:
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 esto ayude. :)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow