Tôi có một chuỗi html như thế này:Tước tất cả các thẻ html với Html Agility Pack
<html><body><p>foo <a href='http://www.example.com'>bar</a> baz</p></body></html>
Tôi muốn tước tất cả các thẻ html để các chuỗi kết quả trở thành:
foo bar baz
Từ bài khác ở đây tại SO Tôi đã đưa ra chức năng này (sử dụng Gói Agility 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
Thật không may điều này không r và những gì tôi mong đợi, thay vào đó nó cho:
bazbarfoo
Làm ơn đi đâu - và đây có phải là cách tiếp cận tốt nhất không?
Kính trọng và mã hóa vui vẻ!
UPDATE: bởi câu trả lời dưới đây tôi đã đưa ra chức năng này, có thể có ích cho người khác:
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
làm việc như một nét duyên dáng - nhờ một lần nữa cám ơn – Muleskinner