¿Puedo usar Html Agility Pack para esto?

.net c# html-agility-pack

Pregunta

No pude encontrar ningún tutorial en su sitio. Me pregunto si puedo usar Html Agility Pack y usarlo para analizar una cadena.

Como decir que tengo

string = "<b>Some code </b>

¿Puedo usar el paquete de agilidad para deshacerme de las etiquetas <b> ? Todos los ejemplos que he visto hasta ahora se han estado cargando como documentos html.

Respuesta aceptada

Si es html entonces sí.

string str = "<b>Some code</b>";
// not sure if needed
string html = string.Format("<html><head></head><body>{0}</body></html>", str);
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);

// look xpath tutorials for how to select elements
// select 1st <b> element
HtmlNode bNode = doc.DocumentNode.SelectSingleNode("b[1]");
string boldText = bNode.InnerText;

Respuesta popular

No creo que este sea realmente el mejor uso de HtmlAgilityPack.

Normalmente veo personas que intentan analizar grandes cantidades de html usando expresiones regulares y las apunto hacia HtmlAgilityPack, pero en este caso creo que sería mejor usar una expresión regular.

Roy Osherove tiene una publicación en el blog que describe cómo puedes eliminar todo el código HTML de un fragmento:

Incluso si obtuvieras la xpath correcta con la muestra de Mika Kolari, esto solo funcionaría para un fragmento con una etiqueta <b> y se rompería si el código cambiara.



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow