html-agility-pack - parser - htmlagilitypack xpath
HtmlAgilityPack y HtmlDecode (3)
El Html Agility Pack está equipado con una clase de utilidad llamada HtmlEntity
. Tiene un método estático con la siguiente firma:
/// <summary>
/// Replace known entities by characters.
/// </summary>
/// <param name="text">The source text.</param>
/// <returns>The result text.</returns>
public static string DeEntitize(string text)
Admite entidades conocidas (como
) y caracteres codificados como '
también.
Actualmente estoy usando HtmlAgilityPack con una aplicación de consola para raspar un sitio web. Como el html está codificado (devuelve caracteres codificados como '
) tengo que decodificar antes de guardar el contenido en mi base de datos.
¿Hay alguna manera de decodificar el html devuelto usando HtmlAgilityPack sin tener que usar HttpUtility.HtmlDecode? Quiero evitar agregar System.Web a mi aplicación de consola si es posible.
Solo agregué mis 2 centavos: realicé algunas pruebas de rendimiento usando la clase HttpUtility.HtmlDecode
y descubrí que HttpUtility.HtmlDecode
es aproximadamente un 15-20% más rápido que el método DeEntitize
. Además, DeEntitize
tiene algunos errores (ver comentarios arriba).
Entonces, tal vez hacer referencia a System.Web no es tan malo después de todo.
Si está escribiendo una aplicación que ya tiene como objetivo ".NET full" (se opone a ".NET Client Profile", que es una versión ligera), me gustaría hacer referencia a System.Web.
Use WebUtility que no necesita ninguna referencia especial.