2009-01-19 12 views

Respuesta

1

expresión regular sería mi camino. ;)

0

Buscando cadenas, querrá buscar expresiones regulares. En cuanto a marcarlo, una vez que tenga la posición de la subcadena debería ser lo suficientemente simple como para usar eso para agregar algo para envolver la frase.

1

Si el código HTML está usando XHTML, puede cargarlo como un documento XML, y luego usar XPath/XSL: largo aliento pero un poco elegante.

Un enfoque que utilicé en el pasado es usar HTMLTidy para convertir HTML sucio a XHTML, y luego usar XSL/XPath para raspar contenido en una base de datos, para crear un sistema de gestión de contenido inverso.

Las expresiones regulares lo harían, pero podría ser complicado una vez que intente eliminar las etiquetas, los nombres de las imágenes, etc., para eliminar los falsos positivos.

1

En casos simples, las expresiones regulares funcionarán.

string input = "ttttttgottttttt";
cadena salida = Regex.Replace (entrada, "ir", "<fuerte> $ 0 </strong >");

rendirá: "tttttt < strong> ir </strong > ttttttt"

Pero cuando se dice HTML, si usted se refiere al texto definitivo pronunciado, eso es un poco de un desastre. Digamos que tienes este código HTML:

< span class = "firstLetter" > B </span > ook

para resaltar la palabra 'libro', lo que se necesita la ayuda de un procesador de HTML adecuado. Para simplificar, primero se pueden eliminar todas las etiquetas y dejar solo los contenidos, y luego hacer la sustitución habitual, pero no se siente bien.

1

Puede ver usando Html DOM, un proyecto de código abierto en SourceForge.net. De esta manera podría manipular su texto mediante programación en lugar de confiar expresiones regulares.

+0

está en estado alfa con la última actualización en 2005, lo que significa que ya no se mantiene. –

7

Me gusta usar Html Agility Pack muy fácil de usar, aunque últimamente no ha habido muchas actualizaciones, todavía se puede usar. Por ejemplo, agarrando todos los enlaces

HtmlWeb client = new HtmlWeb(); 
HtmlDocument doc = client.Load("http://yoururl.com");    
HtmlNodeCollection Nodes = doc.DocumentNode.SelectNodes("//a[@href]");   

foreach (var link in Nodes) 
{     
    Console.WriteLine(link.Attributes["href"].Value); 
} 
Cuestiones relacionadas