que tienen una cadena HTML así:Excluyendo todas las etiquetas HTML con HTML agilidad Paquete
<html><body><p>foo <a href='http://www.example.com'>bar</a> baz</p></body></html>
deseo de despojar todas las etiquetas HTML para que la cadena resultante se transforma en:
foo bar baz
De otro post aquí en lo que he llegado con esta función (que utiliza el paquete de agilidad HTML):
Public Shared Function stripTags(ByVal html As String) As String
Dim plain As String = String.Empty
Dim htmldoc As New HtmlAgilityPack.HtmlDocument
htmldoc.LoadHtml(html)
Dim invalidNodes As HtmlAgilityPack.HtmlNodeCollection = htmldoc.DocumentNode.SelectNodes("//html|//body|//p|//a")
If Not htmldoc Is Nothing Then
For Each node In invalidNodes
node.ParentNode.RemoveChild(node, True)
Next
End If
Return htmldoc.DocumentNode.WriteContentTo
End Function
Desafortunadamente esto no hace r De acuerdo con lo que esperaba, en cambio da:
bazbarfoo
Por favor, ¿dónde voy mal - y este es el mejor enfoque?
Saludos y feliz codificación!
ACTUALIZACIÓN: la respuesta a continuación me ocurrió con esta función, podría ser útil a los demás:
Public Shared Function stripTags(ByVal html As String) As String
Dim htmldoc As New HtmlAgilityPack.HtmlDocument
htmldoc.LoadHtml(html.Replace("</p>", "</p>" & New String(Environment.NewLine, 2)).Replace("<br/>", Environment.NewLine))
Return htmldoc.DocumentNode.InnerText
End Function
trabajando como un encanto - gracias de nuevo – Muleskinner