2012-01-05 19 views
6

Traté de analizar HTML con el HtmlAgilityPack de la siguiente manera:Eliminar espacios en blanco y saltos de línea al analizar con HtmlAgilityPack

HtmlDocument htmlDoc = new HtmlDocument(); 
htmlDoc.LoadHtml(xhtmlString); 

Por desgracia, la xhtmlString contiene espacios en blanco innecesarios y caracteres de nueva línea, por lo que el _TEXT de htmldoc ahora se ve así :

<html xmlns=\"http://www.w3.org/1999/xhtml\">\n\t<head></head>\n\t<body>\n\n<p>Alle Auktionen<br /></p>\n\n\t</body>\n</html>

Esto es un problema para mí cuando se trabaja con los elementos secundarios del cuerpo.

¿Cuál es la forma más fácil de eliminar estos caracteres innecesarios?

¿El HtmlAgilityPack ofrece algún tipo de función para limpiar HTML de nuevas líneas y pestañas?

+0

¿Hay una manera que podría utilizar String.Replace para resolver esto? –

Respuesta

1

Esta es la sangría del documento y no espacios en blanco innecesarios y caracteres de nueva línea.
No puedo ver cómo esto podría ser un problema, pero ¿no puedes simplemente reemplazar los caracteres especiales como "\ t", "\ n"?

Haciendo una búsqueda rápida que encontré este Html Agility Pack: make code look neat
Tal vez la creación de algunas propiedades en falso puede ser útil

+0

Podría reemplazar los caracteres especiales manualmente, pero preferiría extraer el html (sin intenciones, etc.). Si, por ejemplo, los caracteres de nueva línea están codificados de manera diferente porque el usuario que ingresa el html tiene otro sistema operativo, podría tener problemas. – magnattic

+0

. Reemplazar (Environment.NewLine, texto); Puede funcionar para plataformas UNIX y no UNIX, pero no se sabe acerca de "\ t" –

+0

@matheusrufca - la preocupación de atticae acerca de las nuevas líneas es válida. Él no está hablando de tener un problema al ejecutar su plataforma cruzada de código, su preocupación se trata de manipular html generado por otra plataforma. –

Cuestiones relacionadas