Esto parece ser una pregunta recurrente, pero aquí va.Cómo analizar HTML para modificar todas las palabras
Tengo HTML que está bien formateado (proviene de una fuente controlada, por lo que se puede tomar como un hecho). Necesito iterar a través del contenido del cuerpo del HTML, buscar todas las palabras en el documento, realizar algunas modificaciones en esas palabras y guardar los resultados.
Por ejemplo, tengo el archivo sample.html y quiero ejecutarlo a través de mi aplicación y producto output.html, que es exactamente igual al original, más mis ediciones.
He encontrado lo siguiente utilizando HTMLAgilityPack, pero todos los ejemplos que he encontrado miran los atributos de las etiquetas especificadas, ¿hay alguna modificación fácil que examine los contenidos y realice mis ediciones?
HtmlDocument HD = new HtmlDocument();
HD.Load (@"e:\test.htm");
var NoAltElements = HD.DocumentNode.SelectNodes("//img[not(@alt)]");
if (NoAltElements != null)
{
foreach (HtmlNode HN in NoAltElements)
{
HN.Attributes.Append("alt", "no alt image");
}
}
HD.Save(@"e:\test.htm");
Lo anterior busca etiquetas de imagen sin etiquetas ALT. Quiero buscar todas las etiquetas en el archivo <body>
y hacer algo con los contenidos (lo que puede implicar la creación de nuevas etiquetas en el proceso).
Una muestra muy simple de lo que podría hacer es tomar la siguiente entrada:
<html>
<head><title>Some Title</title></head>
<body>
<h1>This is my page</h1>
<p>This is a paragraph of text.</p>
</body>
</html>
y producir la salida, que tiene cada palabra y alterna entre lo que es mayúscula y lo que es cursiva:
<html>
<head><title>Some Title</title></head>
<body>
<h1>THIS <em>is</em> MY <em>page</em></h1>
<p>THIS <em>is</em> A <em>paragraph</em> OF <em>text</em>.</p>
</body>
</html>
Ideas, sugerencias?
¡Gracias, creo que esto es exactamente lo que estaba buscando! – Elie